无法将数据从一个Activity转移到另一个Activity

时间:2018-06-07 10:28:57

标签: android listview android-intent

我创建了两个活动。

  1. 主Activity.java(这是应用程序启动的活动,用户单击名为&#34的按钮;显示计时器"它将用户带到下一个活动)

  2. displayTimer.java(这是第二个具有ListView的活动,每行包含数据。项目点击用户返回主活动)

  3. 我试图将存储在该行中的字符串传递给主要活动。

    这是显示计时器活动的主要代码

    setResult()

    这是来自Main活动的代码,我在其中调用onActivityResult方法来从displaytimer通过intent获取数据。但是我无法获得数据。不知道我做错了什么。任何输入都没问题。

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.user_list_view);
        listView = (ListView) findViewById(R.id.customtimer_listview);
        customTimerAdapter = new CustomTimerAdapter(this, R.layout.row);
        BackGroundTask backGroundTask = new BackGroundTask(this);
        backGroundTask.execute("Get_info");
        registerForContextMenu(listView);
    
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                TextView textView = (TextView) view.findViewById(R.id.time_entered);
                String timeRetrevied = textView.getText().toString();
                //System.out.println(timeRetrevied);
                Intent intentExtras = new Intent(displayTimer.this,MainActivity.class);
                intentExtras.putExtra("TIME_DATA",timeRetrevied);
                setResult(RESULT_OK, intentExtras);
                //startActivityForResult(intentExtras,SECOND_ACTIVITY_REQUEST_CODE,null);
                finish();
    
            }
        });
    
    }
    

    }

1 个答案:

答案 0 :(得分:3)

而不是

  data.getDataString() 

使用

data.getStringExtra("TIME_DATA") 

getDataString以编码的String格式返回URI,这不是您要求的,因为您没有传入数据。 当您使用ID = TIME_DATA传递Sting文本时,使用相同的ID使用getStringExtra(“TIME_DATA”)获取字符串;