牛骨文教育服务平台(让学习变的简单)
博文笔记

Acitivity 带返回值的 传递 示例

创建时间:2016-07-22 投稿人: 浏览次数:217



从电话列表中选中号码,然后跳转到拨号界面。

 

先写主布局文件:

<EditText

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:inputType="phone"

       android:ems="10"

       android:hint="请输入电话号码"

       android:id="@+id/editText_phoneNumber"

       android:layout_alignParentTop="true"

       android:layout_alignParentStart="true"

       android:layout_alignParentEnd="true" />

 

   <Button

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

        android:text="选择联系人"

       android:onClick="selectClick"

       android:id="@+id/button5_select"

       android:layout_below="@+id/editText_phoneNumber"

       android:layout_alignParentEnd="true" />

 

   <Button

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="拨打电话"

       android:onClick="callClick"

       android:id="@+id/button6_call"

       android:layout_below="@+id/button5_select"

       android:layout_centerHorizontal="true" />

</RelativeLayout>

 

 

再写 电话号码列表 布局文件

 

<ListView

       android:layout_width="match_parent"

       android:layout_height="match_parent"

       android:entries="@array/phoneNumbers"

       android:id="@+id/listView_phoneNumbers"/>

</RelativeLayout>

 

 

 

 

 

 

 

 

给电话号码列表 添加内容, 在res/layout/strings.xml中

 

<stringname="app_name">31_Activity</string>

   <string-array name="phoneNumbers">

       <item>13545678934</item>

       <item>18287654343</item>

       <item>13423432433</item>

       <item>18765467544</item>

       <item>13654324355</item>

       <item>135523456755</item>

   </string-array>

</resources>

 

 

主要Activity中java代码:

 

public class CallPhoneActivity extendsAppCompatActivity {

 

   private static final int REQUEST_CODE_SELECT = 0X1;

   private EditText editText_select;

   @Override

   protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_call_phone);

       editText_select = (EditText) findViewById(R.id.editText_phoneNumber);

    }

 

   //选择联系人

   public void selectClick(View view){

       Intent intent = new Intent(this,PhoneListActivity.class);

       startActivityForResult(intent,REQUEST_CODE_SELECT);

    }

 

   //打电话

   public void callClick(View view){

      String phoneNumber = editText_select.getText().toString();

       if(TextUtils.isEmpty(phoneNumber)){

           return;

       }

       //调用系统的拨号界面

       Intent intent = new Intent();

       intent.setAction(Intent.ACTION_DIAL);

       intent.setData(Uri.parse("tel:"+phoneNumber));

       startActivity(intent);

    }

 

   /**

    * 上一个Activity返回结果集时会被调用

    * @param requestCode

    * @param resultCode

    * @param data

    */

   @Override

   protected void onActivityResult(int requestCode, int resultCode, Intentdata) {

       super.onActivityResult(requestCode, resultCode, data);

       switch (resultCode){

           case RESULT_OK:

               if(requestCode==REQUEST_CODE_SELECT){

                    String phoneNumber =data.getStringExtra("phoneNumber");

                   editText_select.setText(phoneNumber);

                }

                break;

       }

    }

}

 

——————————————————————————————————————————————————

另一个Activity中 java代码:

单击列表项后把当前选择的列表项内容设置到返回的结果集中,关闭当前Activity

 

public class PhoneListActivity extendsAppCompatActivity {

 

   private ListView listView_phoneNumbers;

   @Override

   protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_phone_list);

       listView_phoneNumbers = (ListView)findViewById(R.id.listView_phoneNumbers);

       /**

        * 单击列表项后把当前选择的列表项内容设置到返回的结果集中,关闭当前Activity

        */

       listView_phoneNumbers.setOnItemClickListener(newAdapterView.OnItemClickListener() {

           @Override

           public void onItemClick(AdapterView<?> parent, View view, intposition, long id) {

                TextView tv = (TextView)view;

                String phoneNumber =tv.getText().toString();

                Intent intent = getIntent();

               intent.putExtra("phoneNumber",phoneNumber);//把数据存到intent中

                setResult(RESULT_OK,intent);//把intent设置到返回的结果集中

                finish();

           }

       });

    }

}


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。