gpt4 book ai didi

android - 在android中将值(value)从一个 Activity 传递到另一个 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:00:36 24 4
gpt4 key购买 nike

您好,我开发了一个应用程序,它有一个文本框和一个搜索按钮,当我在文本框中输入一个数字并单击搜索按钮时,它需要将输入的值传递给它使用该值的下一个 Activity 从数据库中获取值。

我正在使用以下代码传递值。

search_button.setClickable(true);
search_button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String outlet_no = outlet_id.getText().toString();
System.out.println(outlet_no);
if(!outlet_no.isEmpty()){
@SuppressWarnings("deprecation")
SharedPreferences myPrefs = getApplicationContext().getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
SharedPreferences.Editor prefsEditor = myPrefs.edit();

prefsEditor.putString("outlet_id", outlet_no);
prefsEditor.commit();

Intent myIntent = new Intent(HomeActivity.this, StoreActivity.class);
startActivity(myIntent);
HomeActivity.this.startActivity(myIntent);
}
else{
Toast.makeText(getApplicationContext(), "Please enter an outlet id", Toast.LENGTH_SHORT);
}
}
});

我的问题是它没有传递值。谁能帮我解决这个问题,谁能解释一下上面的代码,因为我没有写它,我发现它很难理解。

StoreActivity 端

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.store);
myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
mOutletID = myPrefs.getString("outlet_id", "0");
mOutletDetails = myPrefs.getString("outlet_details","{}");
Log.v("outlet_details",myPrefs.getString("outlet_details","{}"));
if(mOutletDetails != "{}"){
setOutletData(mOutletDetails);
}
else{
executeAjaxRequest();
}
}

最佳答案

你犯的错误:

1) 为什么要尝试启动 Activity 两次?

startActivity(myIntent);   // this is OK
HomeActivity.this.startActivity(myIntent);

2) 要将输入的文本从一个 Activity 传递到另一个 Activity ,您可以使用 Intent 的 putExtra() 方法,例如:

myIntent.putExtra("SearchText", outlet_no);

所以你的完整代码是:

 Intent myIntent = new Intent(HomeActivity.this, StoreActivity.class);   
myIntent.putExtra("SearchText", outlet_no);
startActivity(myIntent);

3) 接收您从第一个 Activity 传递的值:

Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String outlet_no= bundle.getString("SearchText");

4) 共享首选项:

仅供引用,SharedPreference 用于保存少量数据,供以后跨应用程序引用和使用。

您应该引用以下链接:

  1. SharedPreferences
  2. Intent
  3. Intent and Intent Filters

关于android - 在android中将值(value)从一个 Activity 传递到另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14996597/

24 4 0
文章推荐: ios - Xcode 10 : The Image set 'customloading' reference a file "mygif.gif" , 但该文件没有有效的扩展名
文章推荐: JavaScript 和 DOM : Why "" += "" += "