0

我有 8 个按钮,每个按钮都应该带你到同一个活动,但活动的标题会根据你按下的按钮而改变。

这背后的想法是我有 8 个电影屏幕,每个按钮对应一个屏幕(1 到 8)。所以在 onclick 方法中,我将对该屏幕使用正确的查询并将标题设置为该特定屏幕编号。我肯定有更好的方法可以做到这一点,就像使用下拉列表一样,但我只想知道我已经拥有的东西。

有没有办法使用@string 引用设置页面的标题,或者我需要在按钮的 onclick 方法中硬编码标题?

4

3 回答 3

2

如果我理解正确,您想从 java 代码而不是 xml 访问字符串资源。您可以通过使用生成的 R 类来做到这一点。

例如R.string.my_title。这将为您提供该特定条目的资源 ID。如果要获取它的字符串值,请调用Context.getString(R.string.my_title).

更多信息可以在http://developer.android.com/guide/topics/resources/accessing-resources.html#ResourcesFromCode中找到

于 2013-05-31T23:19:28.147 回答
2

只需单击即可传递文本

public void onClick(View v)
{
    String title = ((Button).getText();
    Intent i = new Intent(MainActivity.this, NextActivitiy.class);
    i.putExtra("title", title);
    startActivity(i);
}

这是假设String resource您所指的是Button. 您将不得不以一种或另一种方式发送标题,所以这应该可以工作。

然后在你的下一次Activity使用中

Intent intent = getIntent();
String title = intent.getStringExtra("title");
于 2013-05-31T23:20:06.337 回答
0

想出了我想做的方式。如果有人有任何其他想法,我愿意改变它。我是 android 编程新手,所以我可能不明白。但这是我的解决方案。

    public void theaterOneButtonOnClick(View v) {

    String title = ("" + R.string.theater_number1);
    Intent i = new Intent(MainActivity.this, TheaterActivity.class);
    i.putExtra("title", title);

    startActivity(i);

}

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.theater_activity);

    Intent intent = getIntent();
    String sTitle = intent.getStringExtra("title");
    TextView msgTextView = (TextView) findViewById(R.id.textView1);
    int title = Integer.parseInt(sTitle);
    msgTextView.setText(title);


}

}

于 2013-06-01T00:24:11.870 回答