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