无法从一个活动获取数据到另一个活动
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