在我的标签主机上,无论如何我可以通过单击选项卡5中的按钮从编辑文本中保存值,然后在标签1-4中使用该值?
我试过这个,但我很确定这只会将它保存到标签1。
public class Tab5 extends Activity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab5);
Button btnGo;
btnGo = (Button) findViewById(R.id.button1);
final EditText edit = (EditText) findViewById(R.id.editText1);
btnGo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences myPref = getSharedPreferences("YourPrefrenceName",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = myPref.edit();
editor.putString("YourStringKey",edit.getText().toString());
editor.commit();
}
标签1
public class Tab1 extends Activity {
private WebView webView;
public final static String URL = "http://outputapps.com/build/infoview.php?id=";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab1);
webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
SharedPreferences myPref = getSharedPreferences("YourPrefrenceName",Context.MODE_PRIVATE);
String mText = myPref.getString("YourStringKey","");
webView.loadUrl(Tab1.URL + mText);
webView.setWebViewClient(new MyAppWebViewClient());
WebSettings settings = webView.getSettings();
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);
}
答案 0 :(得分:2)
您可以使用SharedPrefrences随时存储原始数据值:
存储:
SharedPrefrences myPref = getSharedPrefrences("YourPrefrenceName",Context.MODE_PRIVATE);
SharedPrefrences.Editor editor = myPref.edit();
editor.putString("YourStringKey",editText.getText().toString());
editor.commit();
用于检索:
SharedPrefrences myPref = getSharedPrefrences("YourPrefrenceName",Context.MODE_PRIVATE);
String mText = myPref.getString("YourStringKey","");
现在您可以在任何地方使用mText。
答案 1 :(得分:1)
您可以使用以下三种保存方式: -
public static String etxString=null;
这样的变量,现在在你有编辑文本的活动中(第五个标签),如果你想要的话,你现在就像Constants.etxString=edit.getText().toString();
一样初始化它在标签1-4中使用它只是像这样try{Toast.makeText(this,Constants.etxString,Toast.LENGTH_SHORT).show();}catch(Exception e){e.printStackTrace();}
使用它注意到我已经用try catch包围,因为直到第5次没有被调用,这将抛出nullpointer异常,因为字符串是null。请记住,如果您退出应用程序(据我所知),这不会保证值存在,但这将是最快的方法。
第二个选项是使用sharedpreference store并检索String。
将是DB。
将是档案。
据我所知,这些都是关于存储的所有选项......
至于比较和刷新,你可以有两个字符串静态或共享偏好,一个将保持现值,或者总是在活动之外更改,一个将用于保存前一个网址,这将改变webview活动和在包含webview的活动的onResume()
中,您将执行if(!currentUrl.equals(dynamicUrl)) refreshWebView();
之类的操作,其中refreshWebView()是一个自定义函数,其中重新加载了webview ...
希望它有助于thx .....
答案 2 :(得分:-1)
您可以在Tab1中创建EditText,如:
protected static EditText editText;
它会让它在其他活动中可见,然后在你的标签里做一些谎言这个
String text = Tab5.editText.getText().ToString();
你可以按照你想要的方式和你想要的地方做到这一点