如何从设置菜单中"save"字符串变量



我是编码新手,所以我很抱歉我的"基本"问题。

我正在使用Android studio编写Android应用程序; 非常简单,只有显示我的网站的网络视图,但我需要在设置菜单中有一个editText,我可以在其中修改我的网站网址。

我发布了两个活动(主要和设置(;谁能帮助我了解如何永久存储我在 editText 中编写的 URL,以便在我返回主要活动时打开该 URL? 希望我清楚地提交我的问题!! 提前致谢

Settings.java
private EditText editsite;
private Button button;
public static TextView actSite;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
editsite = findViewById(R.id.editsite);
button = findViewById(R.id.saveButton);
actSite = findViewById(R.id.actSite);
button.setOnClickListener(this);
}

@Override
public void onClick(View view) {
String strData = editsite.getText().toString();
if (strData.length()<=0) {
Toast.makeText(this,"Sito non valido", Toast.LENGTH_SHORT).show();
}else {
actSite.setText(strData);
Main Activity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
WebView vista = (WebView)findViewById(R.id.vista);
vista.getSettings().setJavaScriptEnabled(true);
vista.setWebViewClient(new WebViewClient());

vista.loadUrl("www.google.com");  //examplesite
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
Intent intent = new Intent(MainActivity.this, Settings.class);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
}

您可以在此处使用 SharedPreferences。每次主活动启动时,您都会加载共享首选项并获取字符串。 例: 设置共享首选项

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();  
editor.putString("URL", "Your url");
editor.apply();

获取值

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String url= prefs.getString("URL", "String if URL is emtpy");

最新更新