java - 通过单击按钮使用 BaseAdapter 将 EditText 值添加到 ListView 时出错

标签 java android listview android-listview

我是 android 的新手,请帮助编写代码,了解如何通过单击按钮使用 BaseAdapter 将 EditText 值添加到 ListView。 当我在 EditText 中输入值并单击添加按钮时,值必须放在 ListViw 中(ListView 必须只有 BaseAdapter)。 在这里尝试发现错误的代码,帮助我完成我的代码

ListDataActivity.java

public class ListDataActivity {
    String myData;

    public String getMyData() {
        return myData;
    }

    public void setMyData(String myDataa) {
        myData = myDataa;
    }
}

BaseAdapterActivity.java

public class MyBaseAdapterActivity extends BaseAdapter {

    ArrayList<ListDataActivity> list = new ArrayList<ListDataActivity>();
    LayoutInflater inflater;
    Context context;

    public MyBaseAdapterActivity(Context context, ArrayList<ListDataActivity> list) {
        this.list = list;
        this.context = context;
        inflater = LayoutInflater.from(this.context);
    }

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

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

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

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

        MyViewHolder myViewHolder;

        if (convertView == null) {
            convertView = inflater.inflate(R.layout.activity_addlist, parent, false);
            myViewHolder = new MyViewHolder(convertView);
            convertView.setTag(myViewHolder);
        } else {
            myViewHolder = (MyViewHolder) convertView.getTag();
        }
        ListDataActivity listDataActivity = getItemId(position);

        myViewHolder.mydata.setText(listDataActivity.getMyData());

        return convertView;
    }

    private class MyViewHolder {
        String mydata;

        public MyViewHolder(View item) {
            mydata = (ListView) item.findViewById(R.id.myData);
        }
    }
}

AddListActivity.java

public class AddlistActivity extends Activity {
    ListView lstName;
    Button btnAdd;
    EditText edtName;
    String myData;
    Context context = AddlistActivity.this;
    ArrayList<ListDataActivity> list = new ArrayList<ListDataActivity>();

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

        lstName = (ListView) findViewById(R.id.lst_name);
        btnAdd = (Button) findViewById(R.id.btn_add);
        edtName = (EditText) findViewById(R.id.edt_name);
        getDataInList();

        btnAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myData = edtName.getText().toString().trim();
            }
        });

        lstName.setAdapter(new MyBaseAdapterActivity(context, list));
    }

    private void getDataInList() {
        for (int i = 0; i < myData.length(); i++) {
            ListDataActivity listDataActivity = new ListDataActivity();
            listDataActivity.setMyData(myData[i]);
            list.add(listDataActivity);
        }
    }
}

我的错误

Error:(48, 46) error: array required, but String found C:\Users\Rahul\Documents\AndroidStudioWorkSpace\LoginDataBaseTask\app\src\main\java\com\example\rahul\logindatabasetask\MyBaseAdapterActivity.java Error:(57, 54) error: incompatible types: long cannot be converted to ListDataActivity Error:(59, 28) error: cannot find symbol method setText(String) Error:(68, 52) error: cannot find symbol variable myData Error:(68, 20) error: incompatible types: ListView cannot be converted to String Error:Execution failed for task ':app:compileDebugJavaWithJavac'. Compilation failed; see the compiler error output for details.

最佳答案

实际上你在这里做错了。

 myViewHolder.mydata.setText(listDataActivity.getMyData());

mydata 只是一个 String。它不是 EditText 的对象。所以最好在您的 ViewHolder 中添加 EditText。并在使用前对其进行初始化。

关于java - 通过单击按钮使用 BaseAdapter 将 EditText 值添加到 ListView 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33751092/

相关文章:

android - Android 5.0 Lollipop 上的 UnsatisfiedLinkError

android - Listview 不在 android 中显示正确的图像

c# - wpf collectionview 多过滤器

java - PopupMenu 内的 JPanel

java - Red5 屏幕共享在 Ubuntu 中不起作用

java - 为什么 Java 在 Exception 和 Throwable 类中声明 serialVersionUID?

java - Android Material 重新着色 EditText 下划线

java - 安卓错误 :R cannot be resolved to a variable

Android 通过缩放级别增加多段线宽度(谷歌地图 V2)

java - 删除项目后,使用自定义单元工厂的 ListView 不会更新