无法从一个活动获取数据到另一个活动

Posted

技术标签:

【中文标题】无法从一个活动获取数据到另一个活动【英文标题】:Unable to get the data from one Activity to Another Activity 【发布时间】:2018-11-17 05:39:10 【问题描述】:

我创建了两个活动。

    Main Activity.java(这是应用程序启动的活动,用户单击一个名为“显示计时器”的按钮,将用户带到下一个活动)

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

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

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

@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();

        
    );


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

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == SECOND_ACTIVITY_REQUEST_CODE)
        if (resultCode == RESULT_OK) 
            int setTimer = Integer.parseInt(data.getDataString());
            System.out.println(setTimer);
            seekbar.setProgress(setTimer * 60);
            updateTimer(setTimer);
        
        else
            System.out.println("Not Ok");
        
    
    System.out.println("RequestCode failed");

【问题讨论】:

字符串数据 = data.getExtra().getString("TIME_DATA") Intent intentExtras = new Intent(displayTimer.this,MainActivity.class); 那应该是Intent intentExtras = new Intent(); 【参考方案1】:

代替

  data.getDataString() 

使用

data.getStringExtra("TIME_DATA") 

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

【讨论】:

我尝试了 data.getStringExtra("TIME_DATA") 但仍然没有。似乎 onActivityResult 方法甚至没有运行。

以上是关于无法从一个活动获取数据到另一个活动的主要内容,如果未能解决你的问题,请参考以下文章

如何从片段获取数据到另一个活动? (不是容器活动)[重复]

如何从存储在数据库中的 Listview 获取值到另一个活动?使用 Android 和 Mysql

使用捆绑将数据从一个活动传递到另一个活动 - 不在第二个活动中显示

将 listView 数据从一个活动发送到另一个活动

无法将图像从一个活动发送到另一个活动。请查看详情

如何将当前位置从一项活动发送到另一项活动?