java - 如何从设置菜单中获取 "save"字符串变量

标签 java android

我是编码新手,所以我对我的“基本”问题感到抱歉。

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

我发布了两项 Activity (主要和设置);谁能帮助我了解如何永久存储我在 editText 中写入的 url,以便在我回到主要 Activity 时打开该 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 Here 。每次 MainActivity 启动时,您都会加载共享首选项并获取字符串。 例子: 设置共享首选项

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");

关于java - 如何从设置菜单中获取 "save"字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61917524/

相关文章:

java - 从内部类的对象访问外部类函数

java - 无法在方法之后打印 TestNg 中的语句

android - 日志滚动得太快

android - 错误 : An entity must have at least 1 field annotated with @PrimaryKey

java - Super() 关键字...它可以用来调用多个父类(super class)的构造函数吗?

java - 如何使用 Eclipse "Export as jar option"和属性文件构建 jar

java - Spring 启动 : How do get tomcat port at runtime?

java - 如何重启未root的设备?

Android SHA1 版本 keystore 不适用于 Google map

android - 使用选项卡滑动 View : Activity or Fragment?