Android 将ListView值传递给EditText
我在活动a中有一个Android 将ListView值传递给EditText,android,listview,android-listview,Android,Listview,Android Listview,我在活动a中有一个列表视图,如下所示 单击第一个列表时,它应在editText上显示3。但它显示的5实际上是从上一个列表中获取的 活动A ArrayAdapter<String> adapter; ArrayList<String> m_listItems = new ArrayList<String>(); int mClickedPosition; adapter=new ArrayAdapter<String (getActiv
列表视图
,如下所示
单击第一个列表时,它应在editText
上显示3
。但它显示的5
实际上是从上一个列表中获取的
活动A
ArrayAdapter<String> adapter;
ArrayList<String> m_listItems = new ArrayList<String>();
int mClickedPosition;
adapter=new ArrayAdapter<String (getActivity(),R.layout.claims,R.id.textView1,m_listItems);
listV = (ListView) claims.findViewById(R.id.listView1);
listV.setOnItemClickListener(new
AdapterView.OnItemClickListener() { // when list is pressed, intent to B
public void onItemClick(AdapterView<?> listView, View view, int position, long id) {
mClickedPosition = position;
if (name.equals("Project")) {
Intent intent = new Intent(Claims1.this.getActivity(), B.class);
intent.putExtra("bitmap", true);
intent.putExtra("name", name);
intent.putExtra("result", result);
startActivityForResult(intent, 0);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) { // receive from B
case 0:
result = data.getStringExtra("text");
name = data.getStringExtra("a");
description = data.getStringExtra("c");
as = Long.parseLong(result);
Log.d("FIRST", "result:" + result);
Text = " " + name + " " + "RM" + result + "";
// m_listItems.clear();
if (mClickedPosition == -1) {
m_listItems.add(Text);
} else {
m_listItems.set(mClickedPosition, Text);
}
adapter.notifyDataSetChanged();
listV.setAdapter(adapter);
break;
}
使用
ArrayList
提取ListView
like.位置的字符串
listV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> listView, View view, int position, long id) {
mClickedPosition = position;
String result = m_listItems.get(position); //add this
result = result.substring(2);
if (name.equals("Project")) {
Intent intent = new Intent(Claims1.this.getActivity(), B.class);
intent.putExtra("result", result); // your intent stuff
}
}
});
listV.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView列表视图、视图视图、整型位置、长id){
mClickedPosition=位置;
String result=m_listItems.get(position);//添加此
结果=结果。子字符串(2);
如果(名称等于(“项目”)){
Intent Intent=新的Intent(Claims1.this.getActivity(),B.class);
intent.putExtra(“result”,result);//您的intent内容
}
}
});
dude。。结果字符串是一个简单的包含name+“”+result
的字符串,需要首先对其进行解析。。别忘了他需要在editText
notProject RM5
@Mohit中显示3
,显示的值已经正确。如果可以删除“name”,那就太完美了:)@TonyString result=listView.getAdapter().getItem(position).split(“\s\s+”)[1]。replace(“RM”,”)代码>你可以这样做。。但是它很脏。。您的实现从一开始就不好。。不要依赖于糟糕的实现,因为它们会在未来困扰你/当您获得其他活动的特定字符串时。。您可以使用.split
、.replace
等方法轻松操作字符串
,因此我应该写什么:?注释不用于扩展讨论;这段对话已经结束。
listV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> listView, View view, int position, long id) {
mClickedPosition = position;
String result = m_listItems.get(position); //add this
result = result.substring(2);
if (name.equals("Project")) {
Intent intent = new Intent(Claims1.this.getActivity(), B.class);
intent.putExtra("result", result); // your intent stuff
}
}
});