- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试从 android studio 中的 Intent 中获取结果。
在我的 main 中,我开始一个 Activity 并使用 startActivityForResult(intent, 1)
然后我在 mainActivity 中使用 Activity 2 的 setResults()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if(resultCode == RESULT_OK){
Bundle extras = data.getExtras();
if (extras != null) {
String name = extras.getString("FIRSTNAME");
String Lname = extras.getString("LASTNAME");
int ID = extras.getInt("ID");
//TODO: Get the list fragment to newinstance with out new arraylist
Person p = new Person(name, Lname, ID);
people.add(p);
getFragmentManager().beginTransaction().replace(R.id.content_main, FullList.newInstance(people)).commit();
}
在 Activity 1 的 fragment 中,我调用了一个新的 startActivityForResult(i, 2)
如何让我的主要 Activity 获取 setResults()
来自 Activity 3?
Activity 3 是这样做的:
Intent deleteIntent = new Intent();
deleteIntent.putExtra("FNAME", first);
deleteIntent.putExtra("LNAME", last);
deleteIntent.putExtra("ID", num);
setResult(RESULT_OK, deleteIntent);
finish();
我正在尝试调用我的主要 Activity if (requestCode == 2)
但是没有用。
这里是所有的onActivityResult供引用:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if(resultCode == RESULT_OK){
Bundle extras = data.getExtras();
if (extras != null) {
String name = extras.getString("FIRSTNAME");
String Lname = extras.getString("LASTNAME");
int ID = extras.getInt("ID");
//TODO: Get the list fragment to newinstance with out new arraylist
Person p = new Person(name, Lname, ID);
people.add(p);
getFragmentManager().beginTransaction().replace(R.id.content_main, FullList.newInstance(people)).commit();
}
// NOW SEEING IF THE DETAILS SCREEN PASSED BACK RESULTS
} else if (requestCode == 2) {
if (resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
if (extras != null) {
String name = extras.getString("FNAME");
String Lname = extras.getString("LNAME");
int ID = extras.getInt("ID");
Person p = new Person(name, Lname, ID);
// Delete happens here //
if (people.contains(p)) {
people.remove(p);
// If empty show blank frag, if not, update list //
if (people.isEmpty()) {
getFragmentManager().beginTransaction().replace(R.id.content_main, BlankList.newInstance());
} else {
getFragmentManager().beginTransaction().replace(R.id.content_main, FullList.newInstance(people)).commit();
}
} else {
Toast.makeText(this, "DIDNT RECEIVE SAME INFO", Toast.LENGTH_SHORT).show();
}
}
}
}
// END ELSE CHECK
}
}
这是在 Activity 1 的 fragment 中调用 startActivityForResult()
的代码。
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
//super.onListItemClick(l, v, position, id);
ArrayList<Person> people = (ArrayList<Person>) getArguments().getSerializable(ARG_People);
if (people != null && position != -1) {
Person listPerson = people.get(position);
Intent i = new Intent("OPENDETAILS");
i.putExtra("NAME", listPerson.name);
i.putExtra("LASTNAME", listPerson.lName);
i.putExtra("ID", listPerson.ID);
startActivityForResult(i, 2);
} else {
Toast.makeText(getActivity(), "EMPTY LIST ERROR", Toast.LENGTH_SHORT).show();
}
}
最佳答案
有点不清楚你想做什么,但听起来像:
如果我没听错,那么这里似乎缺少的关键要素是您期望 Activity1 从 Activity3 获得结果,即使是 Activity2 启动它以获得结果。在这种情况下,您应该在 Activity2 中实现 onActivityResult
,处理 Activity3 返回的结果并将其设置为 Activity2 的结果传回 Activity1,然后完成; Activity 将仅接收它通过 startActivityForResult
直接启动的 Activity 的结果。
关于android - 如何处理来自多个 Activity 的 getResults?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41194885/
这个问题在这里已经有了答案: Calling async methods from non-async code (4 个答案) 关闭 3 年前。 我有一个需要同步调用的异步任务(是的,不幸的是,这
在设置中打开位置后,task.getResult() 返回 null。如果再试一次,一切都会好的。问题是什么 ?这是代码 mFusedLocationProviderClient = Location
从我读过的内容来看,有一种方法可以使用嵌套类来解决具有 22 个以上字段的表的问题。它看起来像这样(有一个简单的表格): case class UserRow(id:Int, address1:Add
我已经实现了一个 javascript 类,并且使用 this.loadResults('cpu').bind(this) 来加载特定结果,该结果可以根据字符串进行区分 - 例如 cpu 或 othe
在以下示例中使用 Doctrine 和 Symfony2 使用 getResult() 方法返回的数组的格式是什么: $query = $this->_em->createQuery('SELECT
在我的 Symfony2 Controller 中,我有两个查询: 就像这个例子一样: $object = $this->getDoctrine()->getManager()
我在 sql server 数据库中有一个存储过程,它包含一个 select 语句,因此在调用存储过程时它应该作为结果集返回: Create Procedure SqlTxFunctionTestin
我有一些非常简单的代码来检查是否有更新: com.google.android.play.core.tasks.Task appUpdateInfo = AppUpdateManagerFactory
我进行了搜索,看看是否能找到我的答案,但这完全是我没有使用正确的术语,所以如果我错过了,请随意拍拍我的后脑勺,并将我链接到正确的页面它:) 我正在做的是在表中搜索特定项目,在本例中是 MAC 地址。如
我有一个名为“Video”的实体,附加到它的是由 ManyToOne 和 ManyToMany 关联的其他实体。 我的问题是,正在执行的查询量与常规流量不相符。例如,我在首页上执行的查询数量不定,大约
我正在努力将我的函数从 MySQL 转移到 MySQLi 标准。 这是我以前的 getresult 函数 function getResult($sql) { $resul
我在处理 JavaFX 时遇到问题 Dialog类(class)。我创建了一个带有自定义类型参数的对话框,比如说 String为简单起见。现在,每当我尝试获取对话框的结果时,我都会得到 ClassCa
是否可以更改 Doctrine2 中 getResult() 的数组键值? 例子: $qb->select('t.id, t.name')->from('Table', 't'); 当我打印这个时,我
这是使用灵活 SQL 时的常见模式 implicit private val mapper = GetResult[MyClass]{r => MyClass(r.<<, r.<<, r.<<,
/** * Search result information between two dates * *@Route("/search/{startDate}/{endDate}/{
我想获取 getServerResult() 方法的结果,但返回“null”。但是,httpURLConnectionPost()方法中的Logcat正常,返回“成功”。请回答我!在这种情况下,为什么
使用 slick 并遵循示例,我创建了一个隐式 val 来转换我的结果,如下所示: implicit val getLocationResult = GetResult(r => LkpLocatio
private void storeFirestore(@NonNull Task task, String user_name) { Uri download_uri; if(tas
我正在尝试从 android studio 中的 Intent 中获取结果。 在我的 main 中,我开始一个 Activity 并使用 startActivityForResult(intent,
我使用 doctrine 2 开发 symfony 2 应用程序。我的代码是: $userSites = $this->getDoctrine()->getManager()
我是一名优秀的程序员,十分优秀!