将列表视图选定的文本传递给另一个活动

Posted

技术标签:

【中文标题】将列表视图选定的文本传递给另一个活动【英文标题】:Pass listview selected text to another activity 【发布时间】:2012-01-13 13:25:09 【问题描述】:

抱歉,伙计们无法正常工作,在 onclick 事件期间发生错误。我想将选定的文本传递回启动活动。我是新手,所以请放轻松:)

public class selectTee extends ListActivity

    String[] tees_list;
    String value = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        tees_list = getResources().getStringArray(R.array.tees_array);
        setListAdapter(new ArrayAdapter<String>(this, R.layout.list_view, tees_list));
        final ListView teelist = getListView();
        teelist.setChoiceMode(1);
        teelist.setTextFilterEnabled(false);
        teelist.setOnItemClickListener(new OnItemClickListener()

            public void onItemClick(AdapterView<?> teeAdapter, View arg1, int selectedInt, long selectedLong) 

                //Error occurs during the onclick event
                Intent data = new Intent();
                data.putExtra(value, selectedInt);
                setResult(RESULT_OK, data);
                finish();
            
        );
    

好的,我让它工作了,我更改了以下代码:

public void onActivityResult(int requestCode, int resultCode, Intent data)

            if (requestCode == request_Code) 
            if (resultCode == RESULT_OK)
                Button revisedButton = (Button) findViewById(R.id.button1);
                String btext = data.getData().toString(); 
                revisedButton.setText((CharSequence) btext);

            

            
        

以及返回活动

 public void onItemClick(AdapterView<?> teeAdapter, View arg1, int selectedInt, long selectedLong) 
            String selection  =((TextView) arg1).getText().toString();
            System.out.println(selection);
            Intent data = new Intent();
            Uri uri = Uri.parse(selection);
            System.out.println(uri);
            data.setData(uri);
            setResult(RESULT_OK, data);
            finish();
        



    );

【问题讨论】:

错误是什么。日志会有所帮助。 12-05 17:47:40.781: ERROR/androidRuntime(1310): java.lang.RuntimeException: 传递结果失败 ResultInfowho=null, request=1, result=-1, data= Intent cmp=com.prophecysoftware.GolfProphecy/.SetupNewCourse (has extras) 到活动 com.prophecysoftware.GolfProphecy/com.prophecysoftware.GolfProphecy.SetupNewCourse: android.content.res.Resources$NotFoundException: String resource ID # 0xffffffff 【参考方案1】:

使用

Intent intent = new Intent(getBaseContext(), YOUCLASS.class);
intent.putExtra("TEXT", selectedInt);
//startActivity(intent) if you want to start an activity when its clicked

【讨论】:

【参考方案2】:

看起来你从来没有设置“值”,所以它仍然是空的。我认为这可能是你的问题。您可以在调用 putExtra 之前尝试设置该字符串值吗?

另外,从单击的视图中获取选定的文本。执行以下操作:

String textOfSelectedItem  =((TextView) arg1).getText().toString();

【讨论】:

以上是关于将列表视图选定的文本传递给另一个活动的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSFetchedResultsController 和 CoreData 将选定的行传递给另一个表视图控制器

URL 值未传递给另一个活动

如何将值从动态列表视图传递到活动?

当我单击列表视图的操作项时,将文本从列表视图传递到另一个活动

如何将一个自定义列表的选定数据显示到同一活动的另一个自定义列表视图

以编程方式将文本字段值传递给另一个视图中的标签