1

我目前的问题是我有一个 ListView 我用来显示我的联系人现在我想设置 onItemClick 来获取联系人的名称并将其设置为一个名为 p2 的 TextView 我目前拥有的代码是:

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

        cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);

        String[] from = new String[]{ContactsContract.Contacts._ID,ContactsContract.Contacts.DISPLAY_NAME};
        int[] to = new int[]{R.id.id_text,R.id.name_text};

        final SimpleCursorAdapter adapter = new SimpleCursorAdapter(setp2.this,R.layout.setp2_layout,cursor,from,to);

        ListView list = (ListView)findViewById(R.id.contact_list);
        list.setAdapter(adapter);

        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {              
            }
        });


}

所以基本上我不确定我需要在 onItemClick 中做什么,任何帮助表示赞赏!

4

3 回答 3

1

在您的 onItemClick 中,您将获得与该列表项关联的视图实例。从该视图中,您可以获得与其关联的文本并将其设置为 p2 TextView。如果我对您的要求的理解是正确的,代码将是这样的:

 list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) { 
               CharSequence name = ((TextView)view.findViewById(R.id.name_text)).getText();
               //Set this to your textview in P2
               tvP2.setText(name);

        }
    });
于 2013-04-14T06:23:51.993 回答
0

设置 aSimpleCursorAdapter.CursorToStringConverter并将其设置在适配器上,然后用于convertToString(Cursor cursor)在 item click 上获取文本:

(Cursor) simple.getItem(position)
于 2013-04-14T06:26:53.957 回答
0
@Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) { 
            cursor.moveToPosition(position);
            String name = cursor.getString(cursor.getColumnIndex(
                            ContactsContract.Contacts.DISPLAY_NAME));
             p2.setText(name);
        }
    });
于 2013-04-14T06:38:24.780 回答