gpt4 book ai didi

java - 通过 OnsharedPreferenceChangeListener 更新 TextView 中的文本

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:55 25 4
gpt4 key购买 nike

我已经尝试了不同的事情好几个小时了,但我似乎无法理解当用户通过 Android 中的 EditTextPreference 输入新文本时如何更新 TextView。

我在匿名监听器类内的 onSharedPreferenceChanged 方法中使用 switch 语句。但是,当我设置player1View.setText(value)时,什么也没有发生。有没有更简单的方法来完成这个任务——即通过用户输入更新textView?

这是我无法工作的代码:

public class SettingsActivity extends AppCompatActivity
{
private TextView player1View;
private TextView player2View;
private SharedPreferences.OnSharedPreferenceChangeListener listener;

@Override
protected void onCreate(Bundle savedInstanceState)
{
player1View = findViewById(R.id.player1);
player2View = findViewById(R.id.player2);
super.onCreate(savedInstanceState);
getSupportFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
createListener();
}

private void createListener()
{
listener = new SharedPreferences.OnSharedPreferenceChangeListener()
{
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
{
EditTextPreference etp = (EditTextPreference) sharedPreferences;
String value = sharedPreferences.getString("player_one", "NULL");
switch(key)
{
case "switch_setting1":
//Do something
break;
case "player1_key":
player1View.setText(value);
break;
case "player2_key":
player2View.setText(value);
break;
}
}
};
PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
.registerOnSharedPreferenceChangeListener(listener);
}
}

下面的屏幕截图应该更清楚地强调我的意思。我想要更改的字段是名为“玩家 1”和“玩家 2”的字段,并完成用户通过如图所示的设置输入新名称的操作。

Screenshots from the Android Emulator

最佳答案

尝试也许而不是:

String value = sharedPreferences.getString("player_one", "NULL");

这个:

String value = sharedPreferences.getString("player_one", null);

或者您可能想要创建两个字符串变量(例如 value,value2),一个用于“player_one”,另一个用于“player_two”(如果您忘记添加)。我不知道你到底想构建什么。

关于java - 通过 OnsharedPreferenceChangeListener 更新 TextView 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47502055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com