您好,我开发了一个应用程序,它有一个文本框和一个搜索按钮,当我在文本框中输入数字并单击搜索按钮时,它需要将输入的值传递到下一个活动,在下一个活动中使用该值来获取值来自数据库。
我正在使用以下代码来传递值。
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);
}
}
});
我的问题是它没有传递该值。任何人都可以帮我解决这个问题吗?任何人都可以向我解释一下上面的代码吗?因为我没有编写它,而且我发现很难理解它。
商店活动端
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)为什么你要尝试启动两次活动?
startActivity(myIntent); // this is OK
HomeActivity.this.startActivity(myIntent);
2)要将输入的文本从一个活动传递到另一个活动,您可以使用putExtra()
Intent的方法,例如:
myIntent.putExtra("SearchText", outlet_no);
所以你的完整代码将是:
Intent myIntent = new Intent(HomeActivity.this, StoreActivity.class);
myIntent.putExtra("SearchText", outlet_no);
startActivity(myIntent);
3) 要接收您从第一个活动传递的值:
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String outlet_no= bundle.getString("SearchText");
4)共享首选项:
FYI, SharedPreference
用于保存少量数据,供以后跨应用程序参考和使用。
您应该参考以下链接:
- 共享首选项 http://developer.android.com/reference/android/content/SharedPreferences.html
- Intent http://developer.android.com/reference/android/content/Intent.html
- 意图和意图过滤器 http://developer.android.com/guide/components/intents-filters.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)