Итак, я пытаюсь изменить внешний вид элемента списка из моего пользовательского адаптера, который я сделал «на лету». Я бы хотел, чтобы он менялся, когда я нажимаю кнопку из элемента списка моего пользовательского адаптера. This is an example of a Custom List Item looks like. Когда я нажимаю на кнопку, я хочу, чтобы она выполнила действие для изменения макета. Например, после нажатия кнопки «Я», я хочу, чтобы она спрятала другую кнопку или изменила текст кнопки. По некоторым причинам эти команды, похоже, не действуют при нажатии на них.Обновление содержимого пользовательского адаптера на внутренней кнопке Нажмите
Моя конечная цель - изменить размер элемента списка нажатием кнопки. Но, как я уже упоминал, ничто не вступает в силу. Настройка видимости вне метода onClick, похоже, работает, но делать это внутри нет. Я знаю, что код достигнут, но я считаю, что это связано с тем, что адаптер не обновляется, но у меня есть метод notifyDataSetChanged. Любая помощь приветствуется. Благодарю.
Вот мой код пользовательского адаптера
class CustomAdapter extends ArrayAdapter<Player> {
Button button, button2;
public CustomAdapter(Context context, ArrayList<Player> players) {
super(context, R.layout.player_expanded, players);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater infater = LayoutInflater.from(getContext());
final View customView = infater.inflate(R.layout.custom_list_item, parent, false);
button = (Button) customView.findViewById(R.id.button);
button2 = (Button) customView.findViewById(R.id.button2);
button2.setVisibility(View.VISIBLE);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
button2.setVisibility(View.GONE); //Doesn't take effect
notifyDataSetChanged();
}
});
return customView;
}
}
И мой Custom_List_Item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView3"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:layout_alignParentTop="true"
android:focusable="false"
android:id="@+id/button" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:focusable="false"
android:id="@+id/button2" />
</LinearLayout>
какая у вас кнопка? –
Извините, просто опечатка. Исправлена. – CrossStitch
android: focusable = "false" удалить и попробовать – comeback4you