2015-10-02 18 views
0

美好的一天!如何將選定的數字放入下一個edittext?

我在編程方面很新,我正在嘗試製作一個簡單的android應用程序。我在這裏有2個edittext和2個按鈕,在我的活動中,我想讓他們做的是讓首選聯繫人的數量爲文本,第一個edittext和第一個按鈕成功,但我的問題是按鈕2也把數字放在第一個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

沒有必要的,因爲onActivityResult2()給出startActivityForResult()你造成回onActivityResult()方法。

所以現在你的問題是,你如何管理不同的請求?那麼,您可以在調用startActivityForResult()時通過傳遞不同的請求代碼來完成。

例如:

startActivityForResult(intent, 1); // first request 
startActivityForResult(intent, 2); // second request 
// you can pass any random number as a request code 

現在你只需要根據請求代碼執行的操作收回在onActivityResult()方法。

例如:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (data != null) { 

     if(requestCode == 1) { 
      ... 
      ... 
     } else if (requestCode == 2) { 
      ... 
      ... 
     } 
    } 
} 
+0

是將其移動到上面給出的requestCode == 2邏輯! –

+1

Prefect Solution ..! – InsaneCat

+0

@PareshMayani當我試圖做requestCode == 2它說這是一個死代碼。 –

相關問題