首页 > 解决方案 > 如何将信息从 MainActivity 传输到自定义适配器

问题描述

我有一个带有编辑文本、按钮和自定义列表视图的主要活动。自定义列表视图包含一个文本视图(和其他视图),用于显示按下按钮后在编辑文本中输入的内容。但是,我不确定如何将信息从我的主要活动传输到我的自定义适配器,以希望更新一个特定的文本视图。如果有更高效的方法来完成我的任务,请分享。我是android studio的新手,所以任何知识都会很棒。

我试过调用 MyAdapter 中的一个方法,例如

public void updateExerciseNames(String name) {
        exerciseNames.add(name);
        counter++;
    }

(使用应该出现在文本视图上的字符串更新数组列表,然后更新文本视图。)

在我的 Main_Activity 中创建一个 getString 方法来检索所需的字符串。

使用意图。

这就是我的自定义适配器的样子

public class MyAdapter extends ArrayAdapter<String> {
    private ArrayList<String> list;
    private Context context;
    private TextView list_txt;


    public MyAdapter(ArrayList<String> records, Context context) {
        super(context, 0, records);
        this.list = records;

    }


    @Override
    public View getView (final int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.listview_custom, parent, false);
        }

        Button list_but=(Button)convertView.findViewById(R.id.list_but);
        TextView list_txt = (TextView)convertView.findViewById((R.id.list_txt));
        list_but.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                list.remove(position);
                notifyDataSetChanged();
            }
        });
        return convertView;
    }

标签: android

解决方案


您可以使用另一个构造函数来做到这一点,例如您制作的构造函数

MyAdapter(ArrayList<String> records, Context context,YOUR_DATA_TYPE your_data)

推荐阅读