9

ここで同様のさまざまな質問から回答を得ようとしましたが、回答が得られませんでした。実際、リストビューアイテムの複数のtextViewから値を取得しようとしています。コードは次の
とおりです。ListViewlistView=getListView();

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int postion, long id) {               
        String contactId = ((TextView) findViewById(R.id.cid)).getText().toString();
        String contactName= ((TextView) findViewById(R.id.contactName)).getText().toString();
        String contactNo= ((TextView) findViewById(R.id.contactNo)).getText().toString();
        Intent i = new Intent(getApplicationContext(), editContactActivity.class);
        i.putExtra(TAG_ID, contactId );
        i.putExtra(TAG_NAME, contactName);
        i.putExtra(TAG_CONTACT_NO, contactNo);
        startActivityForResult(i, 100);     
    }   
}); 

私が得ている結果は、リストビューの最初のアイテム(位置)のtextviews値を取得しています。任意のアイテムをクリックしていますが、リストビューの最初のアイテム(位置)のtextviews値を取得しています。これが値を取得する方法のコードです。他の活動について

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.edit_contact);

    btnSave = (Button) findViewById(R.id.btnSaveContact);
    btnDelete = (Button) findViewById(R.id.btnDeleteContact);

    Intent i = getIntent();
    cId = i.getStringExtra(TAG_CONTACT_ID);
    cNameTxt = i.getStringExtra(TAG_CONTACT_NAME);
    cNumberTxt = i.getStringExtra(TAG_CONTACT_NUMBER);

    //Log.d("Value of contact name", cNameTxt);
    //Log.d("Value of contact name", cNumberTxt);


    TextView contactIdTxtView = (TextView) findViewById(R.id.cid);
    cName = (EditText) findViewById(R.id.editCName);
    cNumber = (EditText) findViewById(R.id.editCNumber);


    cName.setText(cId);
    cNumber.setText(cNumberTxt);

}

誰かが詳細に助けてくれるなら私は非常に感謝しますありがとうよろしくAkmalRasool

4

3 に答える 3

39

リストビューの最初のアイテム(位置)のtextviews値を取得しています

使用するたびfindViewById()に、この行のみを調べるように指示してください。

(TextView) view.findViewById(R.id.cid)
//Add this ^^^^^  

すべて一緒に:

@Override
public void onItemClick(AdapterView<?> parent, View view, int postion, long id) {
    String contactId = ((TextView) view.findViewById(R.id.cid)).getText().toString();
    //             Again use view  ^^^^^
    // Repeat this for contactName and contactNo
于 2013-02-12T18:25:39.813 に答える
0

textView値を取得するには、これを試してください。

@Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            TextView text = (TextView)view.findViewById(R.id.correoEncuestador);
            String message= text.getText().toString();
            Toast.makeText(getApplication(), message,  Toast.LENGTH_LONG).show();
        }
    }
于 2016-04-07T22:03:06.963 に答える
-1
View parentView = (View) view.getParent();
    textview1 = ((TextView) parentView
            .findViewById(R.id.textview1)).getText().toString();

    textview2 = ((TextView) parentView
            .findViewById(R.id.textview2)).getText().toString();

    textview3 = ((TextView) parentView
            .findViewById(R.id.textview3)).getText().toString();
于 2016-07-27T05:23:24.703 に答える