В моем приложении у меня есть диалог (dialog1), содержащий Listview с ArrayAdapter с 3 строковыми элементами. Я хочу установить onItemclickListener() в этом списке, с помощью которого я мог бы запускать различные действия для разных кликов. Пожалуйста помоги.
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this,R.layout.new_service_request,LIST));
ListView lv=getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) v).getText(),
Toast.LENGTH_SHORT).show();
// int ITEM_CLICKED = (int)getSelectedItemId();
switch(position){
case 0:
Intent intent1 = new Intent(New.this, Next.class);
startActivity(intent1);
break;
case 1:
Intent intent2 = new Intent(New.this, List.class);
startActivity(intent2);
break;
case 2:
Intent intent3= new Intent(New.this, HotCard.class);
startActivity(intent3);
break;
Посмотрите, поможет ли это
dialog1.setItems(array_of_items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//which is the item number in the list which you can use
//to do things accordingly
}
});
Не уверен, что это будет работать, но вы можете попробовать в диалоговом окне:
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//do stuff here
}
});
Я бы рекомендовал воспроизвести пример с http://www.vogella.de/articles/AndroidListView/article.html, а затем попытаться адаптировать его в соответствии с вашими потребностями (то есть в вашем диалоговом окне). Мне обычно легче понять проблему в простом случае, прежде чем пытаться обучить его в мой код. Таким образом, в вашей ListActivity
вы можете позвонить
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, yourThreeStringArray));
Затем вместо вызова Toast
в примере просто начните свою деятельность примерно так:
Intent myIntent = new Intent(this, MyIntent.class);
startActivityForResult(myIntent, ACTIVITY_CREATE);
(MyIntent
замена MyIntent
классом вашего предполагаемого действия.)
Удачи!