我目前正在处理三个 Activity :mainActivity、readActivity 和 searchActivity。
我希望 readActivity 从其他两个 Activity 中获取 Intent(带有 SQLite 查询的字符串)。但到目前为止,我一直以这种方式处理 Activity :
在当前 Activity 中:
Intent intent = new Intent(this,ReadActivity.class);
String query = "SQLITE QUERY";
Intent.putExtra(intent_extra, query);
startActivity(intent);
在下一个 Activity 中:
Intent intent = getIntent();
String query = intent.getStringExtra(MainActivity.intent_extra);
有没有一种方法可以读取默认 Intent ,而无需从 Activity 的来源命名 Activity ?检查上次 Activity 的快速方法也可以!
提前谢谢您!
最佳答案
用作访问 EXTRA 的 key 的字符串定义在哪里并不重要。
您可以将额外 key 指定为资源文件中的字符串,并通过接收 Activity 访问它们:
资源文件strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="extra_sql_query">extra.SqlQuery</string>
</resources>
接收者
getIntent();
String query = intent.getStringExtra(getString(R.string.extra_sql_query);
来电者
Intent intent = new Intent(this,ReadActivity.class);
String query = "SQLITE QUERY";
intent.putExtra(getString(R.string.extra_sql_query, query);
startActivity(intent);
但是,如果只有一项 Activity ...
处理这些 Intent 时,最好将额外的 key 保存在接收 Activity 中。
接收者
public class ReadActivity extends Activity {
public final static String EXTRA_SQL_QUERY = "sql.query";
和
getIntent();
String query = intent.getStringExtra(EXTRA_SQL_QUERY);
来电者
Intent intent = new Intent(this,ReadActivity.class);
String query = "SQLITE QUERY";
intent.putExtra(ReadActivity.EXTRA_SQL_QUERY, query);
startActivity(intent);
关于Android - 从不同的 Activity 中获取相同的 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19593442/