RT,我建立了一个listview里面有1个edittext 一个 textview 我想取得 多个edittext中的不同值。 我研究了好久。。就是不行。。我用了edittext 增加change监听在运用2维数组这样也只能取到第1个 item中的edittext的值
EditText_Add_01=(EditText)listview.getAdapter().getView(0, null, null).findViewById(R.id.EditText_Add_01); 我用这个取出来的又是空值。。各种办法用了很多,baidu google也没答案求高手帮助。。
public class MyAdapter extends BaseAdapter {
private LayoutInflater inflater;
private int num; public MyAdapter(Context c) {
this.inflater = LayoutInflater.from(c);
} public View getView(int position, View convertView, ViewGroup parent) {
View myView = inflater.inflate(R.layout.addlist, null);
TextView textView = (TextView) myView
.findViewById(R.id.TextView_Add_01);
num = position + 1;
textView.setText(num + " .");
return myView;
} @Override
public int getCount() {
return time;
} @Override
public Object getItem(int position) { return null;
} @Override
public long getItemId(int position) {
return 0;
}
}
EditText_Add_01=(EditText)listview.getAdapter().getView(0, null, null).findViewById(R.id.EditText_Add_01); 我用这个取出来的又是空值。。各种办法用了很多,baidu google也没答案求高手帮助。。
public class MyAdapter extends BaseAdapter {
private LayoutInflater inflater;
private int num; public MyAdapter(Context c) {
this.inflater = LayoutInflater.from(c);
} public View getView(int position, View convertView, ViewGroup parent) {
View myView = inflater.inflate(R.layout.addlist, null);
TextView textView = (TextView) myView
.findViewById(R.id.TextView_Add_01);
num = position + 1;
textView.setText(num + " .");
return myView;
} @Override
public int getCount() {
return time;
} @Override
public Object getItem(int position) { return null;
} @Override
public long getItemId(int position) {
return 0;
}
}
具体怎么实现呢 怎样才能让tag里面的内容就是每一项Edittext中的内容呢
在public View getView(int position, View convertView, ViewGroup parent) {
中不能取得Edittext的值,因为我还没在输入框中输入啊、、我有一个按钮,就是按了这个按钮才取得所有item中的Edittext的值。。谢谢能帮忙下么
http://topic.csdn.net/u/20100722/17/c9e74a1c-44fc-4075-a6ad-0336e87deef4.html谢谢大家,帮帮忙啊
public Object getItem(int position) {
EditText_Add_01 = (EditText) findViewById(R.id.EditText_Add_01);
return EditText_Add_01;
}EditText cc1 = (EditText) listview.getAdapter().getItem(0);
EditText cc2 = (EditText) listview.getAdapter().getItem(1);
String ccc = cc1.getText().toString();
String ccc2 = cc2.getText().toString();中这样改只能取得第一项的内容。。不能定位到每项。。
这样取出来的值都是一样的
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;public class ATest extends Activity {
private ListView myListView;
private EditText myEditText;
private ArrayList<String> myArrayList;
private ArrayAdapter<String> myArrayAdapter; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myEditText = (EditText) findViewById(R.id.myEditText);
myListView = (ListView) findViewById(R.id.myListView);
myArrayList = new ArrayList<String>();
myArrayAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, myArrayList);
myListView.setAdapter(myArrayAdapter); myEditText.setOnKeyListener(new View.OnKeyListener() { @Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
myArrayList.add(0, myEditText.getText().toString());
myArrayAdapter.notifyDataSetChanged();
myEditText.setText("");
return true;
}
return false;
}
return false;
}
});
}
}
public View getView(int position, View convertView, ViewGroup parent) {
View myView = inflater.inflate(R.layout.addlist, null);
TextView textView = (TextView) myView
.findViewById(R.id.TextView_Add_01);
num = position + 1;
textView.setText(num + " .");
return myView;
}先说个建议,最好别这么写,不然界面刷新会很慢的,不要每次getview中都去重新inflate,很耗时的,就第一次inflate就行,然后记录下来成员变量myview,以后就用记录的这个成员变量。 EditText_Add_01=(EditText)listview.getAdapter().getView(0, null, null).findViewById(R.id.EditText_Add_01);
这么写也有问题,getView不需要你手动去调,这个是需要显示时系统去调用。
这个方法我用过。。不能主要是edittext我假设我有 6个 要分开保存6个值 ,不知道在哪开始一个一个保存,因为我是要在按钮同时获取,开始我在public View getView(int position, View convertView, ViewGroup parent) {
中保存,发现这个方法在我进入该项的时候就执行完了,我输入文本的时候他取得的就是空值。。
后来我在里面定义了一个文本改变的监听,可以取得值。==我写下代码给你看,这个好像恩
int a=0; 位子1
public View getView(int position, View convertView, ViewGroup parent) {
位子2;
View myView = inflater.inflate(R.layout.addlist, null);
TextView textView = (TextView) myView
.findViewById(R.id.TextView_Add_01);
EditText_Add_01 = (EditText) myView
.findViewById(R.id.EditText_Add_01);
int c= position
EditText_Add_01.addTextChangedListener(new TextWatcher(){ @Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
aa[c][a++]=s.toString();
} @Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
// TODO Auto-generated method stub
} @Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
// TODO Auto-generated method stub
}
});
num = position + 1;
textView.setText(num + " .");
return myView;
}我这样取可以取到第一个,但是那个a不知道在哪里初始化0,位子1不让写,位子2写了就取空值了。。