我有一个List视图和一个Linear布局中的按钮。我无法扩展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
}
}
答案 0 :(得分:7)
您可以将 OnItemClickListener 设置为ListView
,如下所示
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView adapterView, View view, int position, long id) {
//Do some more stuff here and launch new activity
}
});
答案 1 :(得分:2)
您可以明确地设置onItemClickListener
,如下所示:
listview.setOnItemClickListener(listener);
其中listener
是AdapterView.OnItemClickListener
答案 2 :(得分:0)
使用OnItemClickListener()
列表视图无需从ListActivity
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3) {
}
});
答案 3 :(得分:0)
private final ListView.OnItemClickListener ListClick = new OnItemClickListener() {
public void onItemClick(AdapterView parent, View view, int position, long id) {
// your action
}
};
并设置此方式
listview.setOnItemClickListener(ListClick);