如何将所选数字放入下一个edittext?

时间:2015-10-02 13:31:04

标签: android eclipse

美好的一天!

我是编程方面的新手,我正在尝试制作一个简单的Android应用程序。我在这里有2个edittext和2个按钮在我的活动中,我想让他们做的是获取文本的首选联系人数量和第一个edittext和第一个按钮成功但我的问题是按钮2也将数字放在第一个edittext应该在第二个edittext中加入任何想法吗?

这是我的代码..

public class SA extends Activity {

EditText con1;
EditText con2;

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

    con1 = (EditText) findViewById(R.id.cnum1);
    con2 = (EditText) findViewById(R.id.cnum2);


    ((Button)findViewById(R.id.btnSelectContact1)).setOnClickListener( new OnClickListener() {
        @Override
        public void onClick(View v) {
            // user BoD suggests using Intent.ACTION_PICK instead of .ACTION_GET_CONTENT to avoid the chooser
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            // BoD con't: CONTENT_TYPE instead of CONTENT_ITEM_TYPE
            intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
            startActivityForResult(intent, 1);                
        }
    });

    ((Button)findViewById(R.id.btnSelectContact2)).setOnClickListener( new OnClickListener() {
        @Override
        public void onClick(View v2) {
            // user BoD suggests using Intent.ACTION_PICK instead of .ACTION_GET_CONTENT to avoid the chooser
            Intent intent2 = new Intent(Intent.ACTION_GET_CONTENT);
            // BoD con't: CONTENT_TYPE instead of CONTENT_ITEM_TYPE
            intent2.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
            startActivityForResult(intent2, 1);                
        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (data != null) {
        Uri uri = data.getData();

        if (uri != null) {
            Cursor c = null;
            try {
                c = getContentResolver().query(uri, new String[]{ 
                            ContactsContract.CommonDataKinds.Phone.NUMBER,},
                        null, null, null);

                if (c != null && c.moveToFirst()) {
                    String number = c.getString(0);
                    showSelectedNumber(number);
                }
            } finally {
                if (c != null) {
                    c.close();
                }
            }
        }
    }
}

protected void onActivityResult2(int requestCode2, int resultCode2, Intent data2) {
    if (data2 != null) {
        Uri uri2 = data2.getData();

        if (uri2 != null) {
            Cursor c2 = null;
            try {
                c2 = getContentResolver().query(uri2, new String[]{ 
                            ContactsContract.CommonDataKinds.Phone.NUMBER,},
                        null, null, null);

                if (c2 != null && c2.moveToNext()) {
                    String number2 = c2.getString(0);
                    showSelectedNumber(number2);
                }
            } finally {
                if (c2 != null) {
                    c2.close();
                }
            }
        }
    }
}

public void showSelectedNumber(String number) {
    con1.setText(number);
}
public void showSelectedNumber2(String number2) {
    con2.setText(number2);
}

1 个答案:

答案 0 :(得分:1)

不需要DbContext,因为onActivityResult2()会在startActivityForResult()方法中为您提供结果。

所以现在你的问题是,如何管理不同的请求?那么,您可以通过在调用startActivityForResult()时传递不同的请求代码来完成。

例如:

onActivityResult()

现在您只需要根据startActivityForResult(intent, 1); // first request startActivityForResult(intent, 2); // second request // you can pass any random number as a request code 方法中收到的请求代码执行操作。

例如:

onActivityResult()