2013-05-16 3 views
0

Событие щелчка элемента работает только при первом создании активности списка. если я оставлю действие или закрою приложение, это событие больше не работает. Только если я переустановил приложение. Любая помощь?Событие элемента click не работает правильно

MY ACTIVITY 

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>(); 
     String[] fields = new String[] { 
       "Nome da disciplina", 
       "Número de faltas permitidas", 
       "Número de faltas cometidas", 
       "Hora do término", 
       "Dias da semana" 
     }; 

     setListAdapter(new DisciplineFormAdapter(this,fields)); 

} 




protected void onListItemClick(ListView l, View v, int position, long lo){ 
    super.onListItemClick(l, v, position, lo); 
    Toast.makeText(this, "toast", Toast.LENGTH_SHORT).show(); 


} 

МОЙ ADAPTER

public DisciplineFormAdapter(Context c, String[] l){ 
    this.context = c; 
    this.fields = l; 
} 

@Override 
public int getCount() { 

return fields.length; 
} 

@Override 
public Object getItem(int position) { 

return fields[position]; 
} 

@Override 
public long getItemId(int position) { 

return position; 
} 

@Override 

public View getView(int position, View convertView, ViewGroup parent) { 

    String field = fields[position]; 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View v = inflater.inflate(R.layout.activity_discipline, null); 


    TextView fieldView = (TextView) v.findViewById(R.id.field); 
    fieldView.setText(field); 

    TextView name = (TextView) v.findViewById(R.id.value); 
    name.setText("value"); 

    return v; 
} 

МОЯ XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:orientation="vertical" 
tools:context=".DisciplineActivity" > 


<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/field" 
    android:textSize="17sp" 
    android:textStyle="bold" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/value" /> 

</LinearLayout> 
+0

, когда он не работает, что показывает logcat? –

+0

Я ничего не догадываюсь ... по крайней мере, связан с увольнением. –

+0

как я уволил событие? – user2383879

ответ

0

Вы используете listItemAdapter (обычай). Поместите слушателя событий в GetView вашего адаптера:

public View getView(int position, View convertView, ViewGroup parent) { 

    String field = fields[position]; 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View v = inflater.inflate(R.layout.activity_discipline, null); 


    TextView fieldView = (TextView) v.findViewById(R.id.field); 
    fieldView.setText(field); 

    TextView name = (TextView) v.findViewById(R.id.value); 
    name.setText("value"); 

    v.setOnClickListener(new View.OnClickListener() {   
      @Override 
      public void onClick(View v) {  
      ... do something... 
     } 
    }); 



return v; 

}

где v это ваше мнение.

Если вы хотите отобразить тост:

Toast.makeText(this, "toast", Toast.LENGTH_SHORT).show(); 

вам нужно будет перезвонить на ваш основной поток пользовательского интерфейса - НЕ ПЫТАЙТЕСЬ попытку обновить интерфейс ИЗ ЭТОЙ ФОН НИТИ - ваше приложение будет CRASH!

+0

извините, но я не знаю, что такое код внутри onResume(), я должен написать – user2383879

+0

thx его работы !! – user2383879

+0

эффект фонового клика не работает! ты знаешь почему? – user2383879

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