从ListView上的选定项目设置EditText?

时间:2011-12-15 05:01:55

标签: android android-listview

当我调用ListView并选择了一个项目但我尝试过的所有内容都不起作用时,我一直在尝试设置我的活动和EdiText。我如何设置它是Main.class按钮打开ListView.class,iterm在ListView上选择,并在Main.class上设置EditText与该值。

这是我的代码:

Main.class:

public void onClick(View arg0) {
            // TODO Auto-generated method stub
            switch(arg0.getId()){
                case R.id.bSetListItem:
                            Intent i = new Intent(getBaseContext(),
                              PhotoDialog.class);
                    startActivityForResult(i, GET_ITEM);
                    break;  
        }
        }


protected void onActivityResult(int requestCode, int resultCode, Intent data) 
     { 
         super.onActivityResult(requestCode, resultCode, data); 

         switch(requestCode) {
             case PICK_ITEM:
     // handle the contact result
                 Bundle extras = data.getExtras();
                 String val = extras.getString("item");
                 itemName.setText(val);

                 break;
         }
     }

ListView.class:

    public void onListItemClick(ListView parent, View v, int position,long id) {             
    Intent data = new Intent(this,Main.class);
data.putExtra("key","SELECTED ITEM");    
setResult(RESULT_OK, Intent data);
    }

2 个答案:

答案 0 :(得分:1)

当您开始活动时,您没有完成列表活动,您必须通过调用finish()方法完成您的活动

public void onListItemClick(ListView parent, View v, int position,long id) {             
    Intent data = new Intent();
    data.putExtra("item","SELECTED ITEM");    
    setResult(RESULT_OK, data);
    finish();
}

另一件事是你必须设置的任何键,使用时间相同的键来获取时间

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
 { 
     super.onActivityResult(requestCode, resultCode, data); 

     switch(requestCode) {
         case PICK_ITEM:
 // handle the contact result
             Bundle extras = data.getExtras();
             String val = extras.getString("item");
             itemName.setText(val);

             break;
     }
 }

编辑:

你已经设置了"这个"和#34; Main.class"进入intent,当你为结果启动活动并设置数据时,不需要将上下文对象和类名设置到Intent构造函数中。 Intent()构造函数是空调用,只是将您想要设置的数据作为结果

答案 1 :(得分:0)

只需在ListView类中设置一个公共静态String,然后在Main类中调用

itemName.setText(ListView.string);