Android 将ListView值传递给EditText

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

我在活动a中有一个
列表视图
,如下所示

单击第一个列表时,它应在
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
not
Project RM5
@Mohit中显示
3
,显示的值已经正确。如果可以删除“name”,那就太完美了:)@Tony
String 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
           }
         }
});