第5天(Activity)

   1.电话拨号器(隐式意图)

 <!-- 首页Activity -->
public class MainActivity extends Activity {

    private EditText phoneEditText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        phoneEditText = (EditText) findViewById(R.id.et_phone);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void click1(View view) {

        String phone = phoneEditText.getText().toString();

        // 创建隐式意图(参数1:action名字,第二个参数是Uri对象)
        Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone));

        // 开启意图
        this.startActivity(intent);

    }

}

 
 
 
 
 <!-- 首页布局activity_main.xml -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

   
     <EditText
        android:id="@+id/et_phone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入电话号码" />
    
    <Button  android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="拨打电话"
        android:layout_below="@+id/et_phone"
        android:onClick="click1"/>

</RelativeLayout>

   2.计算器(显式意图)putExtra通过String传递数据和通过对象传递数据


 <!-- 首页Activity -->
public class MainActivity1 extends Activity {

    private EditText value1EditText;

    private EditText symbolEditText;

    private EditText value2EditText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main1);

        value1EditText = (EditText) findViewById(R.id.et_value1);
        symbolEditText = (EditText) findViewById(R.id.et_symbol);
        value2EditText = (EditText) findViewById(R.id.et_value2);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void calculation(View view) {

        deal1();

    }

    // 通过字符串的方式传输数据
    public void deal() {
        String value1 = value1EditText.getText().toString();
        String symbol = symbolEditText.getText().toString();
        String value2 = value2EditText.getText().toString();

        // 需要跳转到Activity
        Intent intent = new Intent(this, CalculationResultActivity.class);

        intent.putExtra("value1", value1);
        intent.putExtra("symbol", symbol);
        intent.putExtra("value2", value2);

        this.startActivity(intent);

    }

    // 通过对象的方式传输数据
    public void deal1() {

        String value1 = value1EditText.getText().toString();
        String symbol = symbolEditText.getText().toString();
        String value2 = value2EditText.getText().toString();

        // 需要跳转到Activity
        Intent intent = new Intent(this, CalculationResultActivity.class);

        CalculationBean calculationBean = new CalculationBean();
        calculationBean.setValue1(value1);
        calculationBean.setSymbol(symbol);
        calculationBean.setValue2(value2);

        intent.putExtra("calculationBean", calculationBean);

        this.startActivity(intent);

    }

}






 <!-- 计算结果Activity -->
public class CalculationResultActivity extends Activity {

    private TextView resultTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calculation_result);

        setResult1();

    }

    // 通过字符串的方式传输数据
    public void setResult() {

        resultTextView = (TextView) findViewById(R.id.tv_result);

        Intent intent = getIntent();

        String value1 = intent.getStringExtra("value1");
        String symbol = intent.getStringExtra("symbol");
        String value2 = intent.getStringExtra("value2");

        int result = getResult(value1, symbol, value2);
        resultTextView.setText(result + "");

    }

    // 通过对象的方式传输数据
    public void setResult1() {

        resultTextView = (TextView) findViewById(R.id.tv_result);

        Intent intent = getIntent();

        CalculationBean calculationBean = (CalculationBean) intent.getSerializableExtra("calculationBean");

        String value1 = calculationBean.getValue1();
        String symbol = calculationBean.getSymbol();
        String value2 = calculationBean.getValue2();

        int result = getResult(value1, symbol, value2);
        resultTextView.setText(result + "");

    }

    private int getResult(String value1, String symbol, String value2) {
        int a1 = Integer.valueOf(value1);
        int a2 = Integer.valueOf(value2);

        int result = 0;

        if ("+".equals(symbol)) {
            result = a1 + a2;
        } else if ("-".equals(symbol)) {
            result = a1 - a2;
        } else if ("X".equals(symbol)) {
            result = a1 * a2;
        } else {
            result = a1 / a2;
        }

        return result;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.calculation_result, menu);
        return true;
    }

}



public class CalculationBean implements Serializable {

    private static final long serialVersionUID = -1188062716570945805L;

    private String value1;

    private String symbol;

    private String value2;

    public String getValue1() {
        return value1;
    }

    public void setValue1(String value1) {
        this.value1 = value1;
    }

    public String getSymbol() {
        return symbol;
    }

    public void setSymbol(String symbol) {
        this.symbol = symbol;
    }

    public String getValue2() {
        return value2;
    }

    public void setValue2(String value2) {
        this.value2 = value2;
    }

}

 
 

 <!-- 首页布局文件activity_main1.xml-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="数值1" />

        <EditText
            android:id="@+id/et_value1"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:hint="" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="运算符" />

        <EditText
            android:id="@+id/et_symbol"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:hint="" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="数值2" />

        <EditText
            android:id="@+id/et_value2"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:hint="" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button_calculation"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="calculation"
            android:layout_marginLeft="200dp"
            android:layout_marginTop="10dp"
            android:text="计算" >
        </Button>
    </LinearLayout>

</LinearLayout>




 <!-- 计算结果布局文件activity_calculation_result.xml-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/tv_result_desc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="计算结果:" />

    <TextView
        android:id="@+id/tv_result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="111" />

</LinearLayout>

   3.短信选择器(显式意图&ListView条目点击事件)

 <!-- 条目选择结果的Activity -->
public class ItemClickActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_item_click);

        TextView itemResultContentTv = (TextView) findViewById(R.id.tv_itemResultContent);

        // 获取从上个Activity跳转的意图对象
        Intent intent = getIntent();

        // 获取传递参数
        String content = intent.getStringExtra("content");

        itemResultContentTv.setText(content);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.item_click, menu);
        return true;
    }

}



 <!-- 首页Activity -->
public class MainActivity2 extends Activity {

    private String[] contents = new String[] { "祝福不请自到,你的笑容很俏", "生活节节登高,日子越过越好", "祝天下最美的女人天天快乐" };

    private ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_activity2);

        listView = (ListView) findViewById(R.id.list_view);

        listView.setAdapter(new MyAdapter());

        listView.setOnItemClickListener(new ItemClickListener());

    }

    private class ItemClickListener implements OnItemClickListener {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            // 获取选中的内容
            String content = contents[position];

            Context context = parent.getContext();

            Intent intent = new Intent(context, ItemClickActivity.class);
            intent.putExtra("content", content);

            startActivity(intent);
        }

    }

    private class MyAdapter extends BaseAdapter {

        @Override
        public int getCount() {
            return contents.length;
        }

        @Override
        public Object getItem(int arg0) {
            return null;
        }

        @Override
        public long getItemId(int arg0) {
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            View view = null;

            if (convertView == null) {

                // 第一种写法(View.inflate)
                /*
                 * view = View.inflate(getApplicationContext(), R.layout.item, null);
                 */

                // 第二种写法(LayoutInflater.from().inflate)
                view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.item, null);

            } else {
                view = convertView;
            }

            TextView cotentTv = (TextView) view.findViewById(R.id.cotent);

            String content = contents[position];

            cotentTv.setText(content);

            return view;
        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main_activity2, menu);
        return true;
    }

}





 <!-- 首页布局文件activity_main_activity2.xml-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity2" >

    <ListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ListView>

</RelativeLayout>

 <!-- 条目选择结果布局文件activity_item_click.xml -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".ItemClickActivity" >

    <TextView
        android:id="@+id/tv_itemResultContent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="短信内容" />

</RelativeLayout>


4.使用到的清单文件(设置打电话权限)


 <!-- 清单文件 -->
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.activity"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />

    <uses-permission android:name="android.permission.CALL_PHONE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.activity.MainActivity2"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="com.example.activity.CalculationResultActivity" />
        <activity android:name="com.example.activity.ItemClickActivity" />
    </application>

</manifest>

 
  


猜你喜欢

转载自blog.csdn.net/qq_34097912/article/details/80418961