java - 是否可以将 String 值更改为 R.string 引用名称?

标签 java android android-studio

标题有点令人困惑,所以让我进一步解释一下。我试图制作的应用程序有多个按钮,可打开一个新的 Activity ,这些按钮看起来相同,但文本根据单击的按钮而有所不同(如字典)。因此,我没有重新创建该 Activity 50 多次,而是在第一个 Activity 中使用新 Intent 为 onClick() 创建了一个新方法,并向第二个 Activity 添加了 getIntent()。

//first activity method
public final static String TRANSFER_SYMBOL = "com.engineering.dictionary.MESSAGE";

public void openView(View view)
{
  Intent open = new Intent(this,displayCharHB.class);
  Button setBtn = (Button) findViewById(view.getId());
  String grabText = setBtn.getText().toString();
  String thisChar = "sym_hira_" + grabText;
  open.putExtra(TRANSFER_SYMBOL,thisChar);
  startActivity(open);
}


//second Activity method
@Override
protected void onCreate(Bundle savedInstanceState) {
    Intent grabChar = getIntent();
    String thisChar = grabChar.getStringExtra(hira_basic.TRANSFER_SYMBOL);
    //String strValue = "R.string." + thisChar;


    TextView displaySym = (TextView) findViewById(R.id.charDisplay);
    displaySym.setText(thisChar);
}

sym_hira_ + 存储在grabText中的任何内容都是strings.xml中字符串的名称(例如,grabText =“ro”,sym_hira_ro是一个字符串名称)。是否可以让它使用 setText() 引用该字符串名称,而不是实际将文本设置为“sym_hira_...”?

最佳答案

Is it possible to get it to reference that string name with setText()

使用getIdentifier使用名称从strings.xml获取值:

int resId = getResources().getIdentifier(thisChar, "string",getPackageName());
displaySym.setText(getResources().getString(resId));

关于java - 是否可以将 String 值更改为 R.string 引用名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28468230/

相关文章:

java - 如何修改IDEA/Android Studio设置中 “try-catch”模板的异常变量默认名称?

java - 使用@PreAuthorize时的安全配置

java - 如何在java中正确使用wait()和notify线程?

java - 使用 Javacc 处理 COBOL 语法中的注释和行/列号

android - 如何使用 Maven 将 ZXing 集成到 AndroidApp?

android - 推送通知 Android GCM - 如何清除消息?

Android Studio - Activity 的布局显示翻转(RTL 而不是 LTR)

javascript - Java 将 byte[] 转换为 BigInteger

android - Jetpack Compose 中的自定义 TabRow

ant - Android Studio:无法声明自定义gradle任务,无法解决符号错误