Java 如何动态更改android:提示?

Java 如何动态更改android:提示?,java,android,Java,Android,我想根据每种型号更改android:hint。 (Android设备可能有不同的SD卡路径。我想设置此值。) 如何获取元素或更改属性 比如 Preferences.java public class Preferences extends PreferenceActivity { private void setDeviceSDCardPath () { String defaultPath = Environment.getExternalStoragePublicDi

我想根据每种型号更改android:hint。 (Android设备可能有不同的SD卡路径。我想设置此值。)

如何获取元素或更改属性

比如

Preferences.java

public class Preferences extends PreferenceActivity {
    private void setDeviceSDCardPath () {
        String defaultPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath();
        pref = getElementById(R.preferences.pref_id);   // <--- invalid, but I want to do like this
        pref.hint = "ex.) " + defaultPath; // <-- also invalid
    }
}
公共类首选项扩展了PreferenceActivity{
私有void setDevicesCardPath(){
字符串defaultPath=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_下载).getAbsolutePath();
pref=getElementById(R.preferences.pref_id);//

选中此项

查看javadoc的EditTextPreference:

它是DialogPreference的子类,以 此EditText可以通过以下两种方式进行编程修改: getEditText(),或通过XML在上设置任何EditText属性 编辑文本首选项

当您在EditTextPreference对象上使用getEditText()获得EditText对象时,您只需使用setHint(字符串消息)方法即可。我相信这应该可以:

EditTextPreference editPref = (EditTextPreference) findPreference(R.id.pref_id);
editPref.getEditText().setHint(message);

yout_editText.设置摘要(“对首选编辑文本的一些描述”);
在xml:android:defaultValue或android:summary中

如果你的答案与其他人的答案相同,那么你应该投票表决,而不是再次发布相同的解决方案。这就是stackoverflow的工作方式。你的答案是从中复制的。当你这样做时,你应该给出参考。好的,兄弟,我接受你说的,但我认为没有人回答,但你发布了早了几秒钟,我没有看到它。我回答了。如何获取myTextView?EditText myEditText=(EditText)FindViewByID(R.id.nameEditText);或者TextView myEditText=(TextView)FindViewByID(R.id.nameTextText);是的,我想获取EditTextPreference。但是IDE说“该方法不推荐使用”和R.id.pref_id无法应用。在较新版本的android上,您应该使用片段。FindReference的方法现在是PreferenceFragment,而不是PreferenceActivity。在蜂巢3.0之后的版本上,您应该将PreferenceActivity替换为PreferenceFragment。Preferences类已经包含一个扩展PreferenceFragment的类。PreferenceFragment有一个名为FindReference的方法,您应该使用该方法。的可能重复项
your_editText.setHint("Your New hint");
myTextView.setHint("My conditional hint");
EditTextPreference editPref = (EditTextPreference) findPreference(R.id.pref_id);
editPref.getEditText().setHint(message);