Android 如何通过单击按钮使用BaseAdapter向ListView添加EditText值

Android 如何通过单击按钮使用BaseAdapter向ListView添加EditText值,android,android-listview,Android,Android Listview,我是android新手,通过单击按钮帮助了解如何使用BaseAdapter向ListView添加EditText值。 当我在EditText中输入值并单击Add按钮时,值必须放在ListViw中(ListView必须只有BaseAdapter) ListDataActivity.java public class ListDataActivity { String myData; public String getMyData() { return myData; } public

我是android新手,通过单击按钮帮助了解如何使用BaseAdapter向ListView添加EditText值。 当我在EditText中输入值并单击Add按钮时,值必须放在ListViw中(ListView必须只有BaseAdapter)

ListDataActivity.java

public class ListDataActivity {
String myData;

public String getMyData()
{
    return myData;
}
public  void setMyData(String myDataa)
{
    myData=myDataa;
}}
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);
    }
}}
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);
    }
}}
BaseAdapterActivity.java

public class ListDataActivity {
String myData;

public String getMyData()
{
    return myData;
}
public  void setMyData(String myDataa)
{
    myData=myDataa;
}}
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);
    }
}}
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);
    }
}}
公共类MyBaseAdapterActivity扩展了BaseAdapter{
ArrayList=新建ArrayList();
充气机;
语境;
公共MyBaseAdapterActivity(上下文,ArrayList)
{
this.list=list;
this.context=context;
充气器=从(此上下文)开始的充气器;
}
@凌驾
public int getCount(){
返回list.size();
}
@凌驾
公共对象getItem(int位置){
返回列表。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
MyViewHolder MyViewHolder;
if(convertView==null)
{
convertView=充气机。充气(R.layout.activity\u addlist,父项,false);
myViewHolder=新的myViewHolder(convertView);
setTag(myViewHolder);
}否则{
myViewHolder=(myViewHolder)convertView.getTag();
}
ListDataActivity ListDataActivity=getItemId(位置);
myViewHolder.mydata.setText(listDataActivity.getMyData());
返回视图;
}
私有类MyViewHolder{
字符串mydata;
公共MyViewHolder(视图项)
{
mydata=(ListView)item.findViewById(R.id.mydata);
}
}}
AddListActivity.java

public class ListDataActivity {
String myData;

public String getMyData()
{
    return myData;
}
public  void setMyData(String myDataa)
{
    myData=myDataa;
}}
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);
    }
}}
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);
    }
}}
公共类AddlistActivity扩展活动{
列表视图名称;
按钮btnAdd;
编辑文本名称;
字符串myData;
Context=AddlistActivity.this;
ArrayList=新的ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u addlist);
lstName=(ListView)findViewById(R.id.lst_name);
btnAdd=(按钮)findviewbyd(R.id.btn_add);
edtName=(EditText)findViewById(R.id.edt\u name);
getDataInList();
btnAdd.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
myData=edtName.getText().toString().trim();
}
});
setAdapter(新的MyBaseAdapterActivity(上下文,列表));
}
私有void getDataInList()
{
对于(int i=0;i
要在单击按钮时将值从编辑文本存储到列表视图,请在单击按钮时执行以下步骤:

  • 从editText获取文本并存储在字符串中

        String myText=editText.getText().toString().trim();
    
  • 然后将其保存到arraylist(通过BaseAdapter将数据提供给listview的数据结构)

    ArrayList stockList=new ArrayList();
    stockList.add(myText);
    
  • 此arraylist主要包含edittext的数据,然后是call adapter.notifydatasetchanged() 谢谢