0

ListView を表示するアクティビティがあり、ListView は TextEdit と Button で構成されています。このボタンは、連絡先の電子メールを選択して TextEdit に入れるために使用されます。

ボタンのリスナーはカスタム配列アダプターで作成され、このメソッドからアクティビティを呼び出して、次のように連絡先を選択します。

Intent intent =new Intent(Intent.ACTION_PICK,ContactsContract.CommonDataKinds.Email.CONTENT_URI);

((Activity) v.getContext()).startActivityForResult(intent, MainActivity.act_pick_contact_mail);

アクティビティでメソッド onActivityResult を作成し、ユーザーが選択したメールを取得できますが、ボタンが押された位置がわかりません。

これは私が書いたコードです: どうすればできるか知っていますか?

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

       //Pick an email
    if(requestCode==MainActivity.act_pick_contact_mail){
        try{
            if(resultCode==Activity.RESULT_OK){    

             Uri uri=data.getData(); 
             Cursor emailCur=getContentResolver().query(uri,null, null, null,null);

             emailCur.moveToFirst();
             String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS));

             //Change the first item, but I need to know the real position
             contactos.set(0, new Contacto(email));
             adapter.notifyDataSetChanged();

             emailCur.close();

            }}
             catch(Exception e){
             Toast.makeText(getBaseContext(), "Email wasn't found", Toast.LENGTH_SHORT).show();      
             e.getCause();
             }        
    } 

}   

前もって感謝します。

編集: getter を使用してアダプター内に属性を作成することを解決しました。

4

1 に答える 1