2015-05-02 3 views
0

У меня проблема с отображением списка нажатий. Когда я нажимаю на кнопку, ничего не происходит. Я должен начать новую деятельность.Listview onclick issue

Я хочу знать, что случилось с моим кодом:

Импорт

public class CountriesListAdapter extends   ArrayAdapter<String> { 
    private final Context context; 
    private final String[] values; 
    ListView listView ; 

    public CountriesListAdapter(Context context,  String[] values) { 
    super(context, R.layout.country_list_item, values); 
    this.context = context; 
    this.values = values; 
} 

    @Override 
    public View getView(int position, View  convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    View rowView = inflater.inflate(R.layout.country_list_item, parent, false); 
    TextView textView = (TextView) rowView.findViewById(R.id.txtViewCountryName); 
    ImageView imageView = (ImageView) rowView.findViewById(R.id.imgViewFlag); 

    String g=values[position]; 
    textView.setText((g).trim()); 
    if (g.equals("1")) { 
     imageView.setImageResource(R.drawable.ger);  
    } else if (g.equals("2")) { 
     imageView.setImageResource(R.drawable.ukra); 
    } else if (g.equals("3")) { 
      imageView.setImageResource(R.drawable.k); 
    } else if (g.equals("4")) { 
     imageView.setImageResource(R.drawable.wf); 
    } 
    return rowView;} 
     protected void onListItemClick(int position, View convertView, ViewGroup parent) { 
      String g=values[position]; 
       if (g.equals("4")){ 
        Intent intent = new Intent(context, Spain.class); 
        context.startActivity(intent); 



       }} 
} 
+0

где вы реализуете 'onListItemClick'? –

+0

Какая кнопка? Вы имели в виду список? – async

+0

button или listview? – Rob

ответ

0

Вы должны вызвать onitemclick слушателя от активности или фрагмента, который добавляется ListView ...

к примеру ...

listView = (ListView) findViewById(R.id.custom_list); 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
      //your code to go to the next activity is here... 
     } 
    }); 
+0

Я хочу, когда пользователь нажимает на элемент 1 запускает активность 1, например, и если вы нажмете 2, начните действовать 2, как это –

1

Попробуйте

listView.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        final int position, long id) { 

       Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_SHORT).show(); 
      // Add Your Staff Here 
      } 
     }); 

Вы можете посетить здесь

http://theopentutorials.com/tutorials/android/listview/android-custom-listview-with-image-and-text-using-arrayadapter/

+0

. Для получения дополнительной информации вы можете ознакомиться здесь http://rndp-android.blogspot.in/2014/04/android-listview -onitemclick-event.html –

0

Вы не инициализирован ваш values массив правильно. Вы также не добавляли прослушиватель кликов элемента списка, поэтому событие click не запускается. Пользуйтесь следующим кодом:

listview.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, 
       long id) { 
      Intent intent = new Intent(context, Spain.class); 
      startActivity(intent); 
     } 
    });