如何访问其他布局的元素?

博格丹·马蒂诺夫(Bogdan Martynov)

我创建了listView。在这里输入图像描述,还有我的适配器,其中有一个按钮,即textView。当我单击按钮时,我要在列表中输入图像描述如何在类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));
    }
}
谢尔盖·舒斯蒂科夫(Sergey Shustikov)

您只需要从DATA中删除一个项目(在您的情况下为- 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;

    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章