Android 在项目上单击以查看列表

Android 在项目上单击以查看列表,android,android-listview,Android,Android Listview,我有一个列表视图和一个线性布局的按钮。我无法扩展ListActivity(使用Onlistitemclick),但我必须在列表视图中选择一个项目,该项目将打开另一个视图,在该视图中我必须从SQLite DB中填写详细信息 假设数据库正常工作,对以下代码实现此功能的最佳方法是什么?我是初学者。欢迎所有与方法和代码相关的建议 提前感谢, public class Contacts extends Activity implements OnClickListener { int NewCon

我有一个列表视图和一个线性布局的按钮。我无法扩展ListActivity(使用Onlistitemclick),但我必须在列表视图中选择一个项目,该项目将打开另一个视图,在该视图中我必须从SQLite DB中填写详细信息

假设数据库正常工作,对以下代码实现此功能的最佳方法是什么?我是初学者。欢迎所有与方法和代码相关的建议

提前感谢,

public class Contacts extends Activity implements OnClickListener {
    int NewContact_Request_Code = 1;
    Button newcontact;
    ListView listview;
    public static final String LOG_TAG = "Contacts";
    int mInt = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.contactview);
        // Set the content to contactview.xml

        // newcontact = NEW CONTACT button
        // listview = MyList List View
        newcontact = (Button) findViewById(R.id.baddcontact);
        listview = (ListView) findViewById(R.id.mylist);

        // Make a New Database
        DBContact info = new DBContact(this);
        // Open , get Information from database and close it
        info.open();
        String[] data = info.queryAll();
        info.close();
        // listview = getListView();
        listview.setTextFilterEnabled(true);
        // Display the names
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(Contacts.this, android.R.layout.simple_list_item_1, data);
         listview.setAdapter(adapter);
        newcontact.setOnClickListener(this);

    }

    // @Override
    // protected void onListItemClick(ListView l, View v, int position, long id)
    // {
    // // TODO Auto-generated method stub
    // super.onListItemClick(l, v, position, id);
    // Intent viewintent = new Intent(Contacts.this, ViewContact.class);
    // String item = (String) getListAdapter().getItem(position);
    // viewintent.putExtra("name_clicked", item);
    // startActivity(viewintent);
    //
    // }



    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent newintent = new Intent(Contacts.this, AddNewContact.class);
        // start actiivity for result - to get the name of the new contact
        startActivityForResult(newintent, 0);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        // pass the value of the string via cursor and update the list
    }

}
公共类联系人扩展活动实现OnClickListener{
int NewContact_Request_Code=1;
按钮新触点;
列表视图列表视图;
公共静态最终字符串LOG_TAG=“Contacts”;
int mInt=0;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.contactview);
//将内容设置为contactview.xml
//newcontact=新联系人按钮
//listview=MyList列表视图
newcontact=(按钮)findViewById(R.id.baddcontact);
listview=(listview)findViewById(R.id.mylist);
//创建新数据库
DBContact info=新的DBContact(此);
//打开,从数据库获取信息,然后关闭它
info.open();
String[]data=info.queryAll();
info.close();
//listview=getListView();
setTextFilterEnabled(true);
//显示名称
ArrayAdapter=新的ArrayAdapter(Contacts.this,android.R.layout.simple\u list\u item\u 1,数据);
setAdapter(适配器);
newcontact.setOnClickListener(这个);
}
//@覆盖
//受保护的void onListItemClick(列表视图l、视图v、整数位置、长id)
// {
////TODO自动生成的方法存根
//super.onListItemClick(左、右、位置、id);
//Intent viewintent=新的Intent(Contacts.this、ViewContact.class);
//字符串项=(字符串)getListAdapter().getItem(位置);
//viewintent.putExtra(“单击名称”,项目);
//startActivity(viewintent);
//
// }
公共void onClick(视图v){
//TODO自动生成的方法存根
Intent newintent=newintent(Contacts.this,AddNewContact.class);
//为结果启动Activity-获取新联系人的姓名
startActivityForResult(newintent,0);
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
//TODO自动生成的方法存根
super.onActivityResult(请求代码、结果代码、数据);
//通过游标传递字符串的值并更新列表
}
}

您可以在其上明确设置一个
监听器
,如下所示:

listview.setOnItemClickListener(listener);

其中,
listener
是一个
AdapterView.OnItemClickListener

使用
OnItemClickListener()
进行列表视图无需从
ListActivity

listview.setOnItemClickListener(new OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3) {          

   }
});
listview.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView arg0,视图v,int arg2,long arg3){
}
});
就这样

listview.setOnItemClickListener(ListClick);
您可以将设置为
列表视图,如下所示

listview.setOnItemClickListener(new OnItemClickListener() {

  public void onItemClick(AdapterView adapterView, View view, int position, long id) {

        //Do some more stuff here and launch new activity

  }
});

我真的很抱歉,几周前我一直在做android。你能解释一下吗???
ListView
有很多“项目”(每一行),你想知道什么时候点击任何一个项目吗?因此,您在
列表视图上设置了一个“侦听器”,每当单击某个项目时,都会通知该侦听器。可以使用的预定义侦听器类是
AdapterView.OnItemClickListener
。关于实现这一点的简单方法,请参见下面SpK的答案。感谢您的时间和帮助。我真的很抱歉,我从几周前就开始使用android。您能解释一下吗?谢谢您的时间和帮助我想您已经得到了答案。你还有很长的路要走。祝你好运。是的。我又遇到了一个问题,看看能不能帮上忙。我真的很抱歉,几周前我一直在做android。你能解释一下吗???@user1693503我要解释什么。你想知道如何处理这个问题吗?如果可以的话,那会很有帮助。复制和粘贴代码是没有意义的。我对编程非常陌生,我也没有软件背景。我的列表视图是一个名称列表。当其中一个被单击时,我想将该name参数传递给另一个类。这里面是什么??我知道如何使用意图和发送数据intents@user1693503对只要这样做,字符串数据中的
String data=adapterView.getItemAtPosition(position).toString()将提供您选择的项目。得到这个后,只要把这个字符串传递到你想要的任何地方。但是,在
onItemClick
中执行此操作谢谢您的时间和帮助我真的很抱歉,我从几周前开始使用android。请您解释一下??只需将此代码用于列表视图onItemClick,然后使用意图导航到另一个类。谢谢您的时间和帮助
listview.setOnItemClickListener(new OnItemClickListener() {

  public void onItemClick(AdapterView adapterView, View view, int position, long id) {

        //Do some more stuff here and launch new activity

  }
});