Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ListView上的setOnItemClickListener如何显示数据库值_Android_Database_Listview - Fatal编程技术网

Android ListView上的setOnItemClickListener如何显示数据库值

Android ListView上的setOnItemClickListener如何显示数据库值,android,database,listview,Android,Database,Listview,我有一个带有联系人信息(姓名、电话号码)的列表视图,因此当我单击联系人姓名时,我希望在一个对话框中显示其姓名和电话号码(该对话框已经有代码),即: 然后我看到了关于setOnItemClickListener的内容,但是当我尝试将其放在.java文件中时,它甚至没有建议代码,有人知道为什么或者如何做吗 编辑: //LISTVIEW数据库CONTATO ListView用户=(ListView)findViewById(R.id.lvShowContatos); //字符串=简单值| | |字

我有一个带有联系人信息(姓名、电话号码)的列表视图,因此当我单击联系人姓名时,我希望在一个对话框中显示其姓名和电话号码(该对话框已经有代码),即:

然后我看到了关于
setOnItemClickListener
的内容,但是当我尝试将其放在.java文件中时,它甚至没有建议代码,有人知道为什么或者如何做吗

编辑:

//LISTVIEW数据库CONTATO
ListView用户=(ListView)findViewById(R.id.lvShowContatos);
//字符串=简单值| | |字符串[]=多个值/列
字符串[]campos=新字符串[]{“nome”,“telefone”};
列表=新的ArrayList();
游标c=db.query(“contatos”,campos,null,null,null,null,null);
c、 moveToFirst();
字符串lista=“”;
如果(c.getCount()>0){
while(true){
添加(c.getString(c.getColumnIndex(“nome”)).toString());
如果(!c.moveToNext())中断;
}
}
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,list);
user.setAdapter(适配器);
这是我的listview/适配器的代码


OBS:如果您可以解释(没有tuts链接(如果可能的话会更好))

假设ListView中使用的适配器具有自定义类型(我称之为ContactInfo),那么以下内容应该可以工作

getListView().setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        // Get String provided to this particular row
        ContactInfo info = getListView().getAdapter().getItem(position);

        // Construct title, message etc from information within info
        showMessage("Contact Info", info);
    }
});
getListView().setOnItemClickListener(新的OnItemClickListener()){
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
//获取为此特定行提供的字符串
ContactInfo info=getListView().getAdapter().getItem(位置);
//从info中的信息构造标题、消息等
showMessage(“联系信息”,信息);
}
});
(我看到您自己正在处理一个光标并使用ArrayAdapter,请理解SimpleCursorAdapter可以为您完成这项工作。请参阅下面我的说明。)

无论如何,请将光标更改为类变量,并尝试将其添加到
onCreate()


了解您可以简化阅读联系人的方式:

list = new ArrayList<String>();
Cursor c = db.query("contatos", campos, null, null, null, null, "nome");
int nameIndex = c.getColumnIndex("nome");
while(c.moveToNext()) {
    list.add(c.getString(nameIndex));
}

我们需要更多的信息。。。您正在使用哪种类型的适配器,以及从何处获取
titulo
msg
信息?选中编辑,titulo是标题,因此:
ShowMessage(“title/titulo here”,“message/msg here”)
我将它放在onCreate中,但它会给出错误(“user”变量、onItemClickListener和getText上)
user
是您的ListView。您需要在代码后面设置OnClickListener,看起来像
user=(ListView)findViewById(R.id.ListView)好的,我还没有使用所有的代码,但是我已经使用了一个来放入onCreate,现在唯一显示错误的是getText(它说要更改为;getContext,getRight…),现在怎么办?应用程序中没有显示值(我编译了,没有显示数据)抱歉,我将答案更新为:
((TextView)视图)。getText().toString()
。是的,它是对的:D谢谢,好的,所以现在我还想让它显示电话号码,怎么办?然后在删除联系人之后(知道怎么做吗?)
getListView().setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        // Get String provided to this particular row
        ContactInfo info = getListView().getAdapter().getItem(position);

        // Construct title, message etc from information within info
        showMessage("Contact Info", info);
    }
});
user.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        c.moveToPosition(position);
        String nome = c.getString(c.getColumnIndex("nome"));
        String telefone = c.getString(c.getColumnIndex("telefone"));
        showMessage(nome, telefone);
    }
});
public class MyActivity extends Activity {
    Cursor c;

    public void onCreate(...) {
        ...
        c = db.query( "contatos", campos, null, null, null, null, "nome");
        ...
    }
}
list = new ArrayList<String>();
Cursor c = db.query("contatos", campos, null, null, null, null, "nome");
int nameIndex = c.getColumnIndex("nome");
while(c.moveToNext()) {
    list.add(c.getString(nameIndex));
}
Cursor c = db.query("contatos", campos, null, null, null, null, "nome");
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
        android.R.layout.simple_list_item_1, c, 
        new String[] {"nome"}, new int[] {android.R.id.text1});
user.setAdapter(adapter);