gpt4 book ai didi

java - 如何访问另一个布局的元素?

转载 作者:行者123 更新时间:2023-11-30 01:13:42 25 4
gpt4 key购买 nike

我创建了 ListView 。 enter image description here还有我的适配器,它有一个按钮,textView。 enter image description here我想当我点击一个按钮时从列表中删除元素。如何在MainActiviti 类中访问另一个布局的元素?

public class AdapterItem extends BaseAdapter {

Context context;
LayoutInflater lInflater;
ArrayList<ItemInList> items;


public AdapterItem(Context context, ArrayList<ItemInList> items){
this.context = context;
this.items = items;
lInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}


@Override
public int getCount() {
return items.size();
}

@Override
public Object getItem(int position) {
return items.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = lInflater.inflate(R.layout.item, parent, false);
}

ItemInList itemInList = getItemList(position);



((TextView) view.findViewById(R.id.id_item)).setText(itemInList.id);
((TextView) view.findViewById(R.id.name)).setText(itemInList.name);
((ImageButton) view.findViewById(R.id.imageButton)).setImageResource(itemInList.imageButton);

return view;

}


ItemInList getItemList(int position) {
return ((ItemInList) getItem(position));
}
}

ItemInList.java

        public class ItemInList  {

String name;
String id;
int imageButton;
boolean deleteChek;

public ItemInList(String name, String id, int imageButton, boolean deleteChek){

this.name = name;
this.id = id;
this.imageButton = imageButton;
this.deleteChek = deleteChek;
}
}

MainActivity.java

 public class MainActivity extends AppCompatActivity {

ArrayList<ItemInList> arrayItemInLists = new ArrayList<ItemInList>();
AdapterItem adapterItem;
ListView listViewl;
Button delete;
Button checkAll;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

fillData();

listViewl = (ListView) findViewById(R.id.listView);
delete = (Button) findViewById(R.id.delete_select);
checkAll = (Button) findViewById(R.id.select_all);

adapterItem = new AdapterItem(this, arrayItemInLists);
listViewl.setAdapter(adapterItem);

}

public void fillData() {
for (int i = 1; i <= 20; i++) {
arrayItemInLists.add(new ItemInList("String" + i," " + i, R.drawable.delete,false));
}
}

最佳答案

您只需从您的数据中删除一个项目(在您的例子中 - arrayItemInLists)并调用 notifyDataSetChanged()。事实上,您可以在 Adapter 中执行此操作。

private OnClickListener listener= new OnClickListener() {
@Override
public void onClick(View v) {
int position = ((Integer) v.getTag());

}
};

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = lInflater.inflate(R.layout.item, parent, false);
}

ItemInList itemInList = getItemList(position);



((TextView) view.findViewById(R.id.id_item)).setText(itemInList.id);
((TextView) view.findViewById(R.id.name)).setText(itemInList.name);
((ImageButton) view.findViewById(R.id.imageButton)).setImageResource(itemInList.imageButton);

((ImageButton) view.findViewById(R.id.imageButton)).setTag(position);
((ImageButton) view.findViewById(R.id.imageButton)).setOnClickListener(listener);
return view;

}

关于java - 如何访问另一个布局的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38168553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com