我有 8 个按钮,每个按钮都应该带你到同一个活动,但活动的标题会根据你按下的按钮而改变。
这背后的想法是我有 8 个电影屏幕,每个按钮对应一个屏幕(1 到 8)。所以在 onclick 方法中,我将对该屏幕使用正确的查询并将标题设置为该特定屏幕编号。我肯定有更好的方法可以做到这一点,就像使用下拉列表一样,但我只想知道我已经拥有的东西。
有没有办法使用@string 引用设置页面的标题,或者我需要在按钮的 onclick 方法中硬编码标题?
我有 8 个按钮,每个按钮都应该带你到同一个活动,但活动的标题会根据你按下的按钮而改变。
这背后的想法是我有 8 个电影屏幕,每个按钮对应一个屏幕(1 到 8)。所以在 onclick 方法中,我将对该屏幕使用正确的查询并将标题设置为该特定屏幕编号。我肯定有更好的方法可以做到这一点,就像使用下拉列表一样,但我只想知道我已经拥有的东西。
有没有办法使用@string 引用设置页面的标题,或者我需要在按钮的 onclick 方法中硬编码标题?
如果我理解正确,您想从 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中找到
只需单击即可传递文本
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");
想出了我想做的方式。如果有人有任何其他想法,我愿意改变它。我是 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);
}
}