В следующем коде я хочу установить Onclick Listeners на некоторые «элементы» моей строки. где я должен поместить код прослушивания setOnclick? В коде действия или в адаптере? Я предполагаю, что первый, но в этом случае, как я буду определять, какая строка была выбрана? (каждая строка должна доводить меня до разных точек зрения)?переход на другой экран из строки списка.
Java код:
List<String[]> info=new ArrayList<String[]>();
String[] names_info=new String[5];
String[] phones_info=new String[5];
String[] map_info=new String[5];
String[] web_info=new String[5];
String[] photos_info=new String[5];
for(int i=0;i<names_info.length;i++)
{
info.add(new String[]{names_info[i],phones_info[i],map_info[i],web_info[i],photos_info[i]});
}
for (int i = 0; i < info.size(); i++) {
Log.d("TAG", "item " + i +
" name:" + info.get(i)[0] +
" info:" + info.get(i)[1]);
}
FacilitiesAdapter adapter = new FacilitiesAdapter(this,info,want_info_display,want_phone_display,want_photos_display);
//System.out.println(info[0]);
setListAdapter(adapter);
EDIT
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// When clicked, show a toast with the TextView text
//Toast.makeText(getApplicationContext(), ((TextView) arg1).getText(),
//Toast.LENGTH_SHORT).show();
Intent i33 = new Intent(HotelsScreen.this,AbousUsScreen.class);
i33.putExtra("position", arg2);
System.out.println(arg2);
System.out.println(info.get(arg2)[0]);
startActivity(i33);
}
});
Я вижу результаты в журнале, так что это означает, что моя информация получает свой результат в обычном режиме.
Это мой адаптер.
public class FacilitiesAdapter extends ArrayAdapter<String[]> {
private final Context context;
List <String[]> dataList;
public FacilitiesAdapter(Context context, List<String[]> dataList, int need_phone, int need_info, int need_photos) {
super(context, R.layout.expand_row);
this.context = context;
this.dataList = dataList;
//this.tracks_condition=tracks_condition;
//this.count=count;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.expand_row, parent, false);
System.out.println("I am here");
String[] data = dataList.get(position);
String name=data[0];
TextView textView = (TextView) rowView.findViewById(R.id.name);
System.out.println("I am in the adapter "+name);
textView.setText(name);
return rowView;
}
}
EDIT 1: я должен сейчас, чтобы увидеть в каждом пункте я нажимаю свою позицию и свое имя? Потому что я ничего не вижу?
Это могло бы пойти, вероятно, пойти в вашу onCreate – dldnh
Хорошо с этим. И как я могу передать в качестве параметра идентификаторы текста (как имя, так и информацию, я приказываю использовать их для того, чтобы узнать whick screen, чтобы открыть –
, если 'onItemClick' имеет доступ к тому же' dataList', который имеет адаптер, он может получить нужные ему данные, а затем использовать 'i33.putExtra (...)' похожее на то, что показано выше – dldnh