2015-03-29 2 views
-1

Как я могу начать деятельность в зависимости от того, на какой элемент нажата? Я не знаю, как это сделать с циклом, не делая это в каждом случае. Я сделал это:Listview: щелкните по элементам

yourListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       String str=yourListView.getItemAtPosition(position).toString(); 
       Toast.makeText(getApplicationContext(), str,Toast.LENGTH_LONG).show(); 
       TextView label=(TextView) view.findViewById(R.id.id); 
       String txt = ((TextView)view).getText().toString(); 
+0

Что не так с этим случае в случае? – StoneBird

+0

Потому что мой Listview заполняется разбором XML-файлов из URL-адресов. Таким образом, элементы списка будут меняться в зависимости от URL-адреса. – Stark

ответ

0

Добавить OnClickListeners в каждый разобранный вид.

Вы можете восстановить все дочерние представления из вашей линейной компоновки, чтобы сделать это.

LinearLayout ll=...; 
int childcount = ll.getChildCount(); 
for (int i=0; i < childcount; i++){ 
    View v = ll.getChildAt(i); 
    //You could get your views information by casting v to your custom view 
    //MyCustomView cv=(MyCustomView)v; 
    //Extract the information that you saved in your view 
    v.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      /** launch your activity using the extracted information **/ 
     } 
    }); 
} 
+0

Благодарим за помощь Ари. Но как я могу получить текст элемента, нажатого в этом коде? – Stark

+0

Это зависит от элемента, если это вид, который определен как класс, например. TextView: просто бросьте его. Если он анализируется из xml, используйте v.findViewById(), если ваш текст предоставлен вашим представлением ID. – Ari

+0

Я использовал ваш код, но приложение crash я отредактировал свое сообщение, чтобы опубликовать коды ошибок в logcat .. это очень сложно понять, спасибо за вашу помощь – Stark

Смежные вопросы