单击两个不同的按钮时,如何以不同的文本开始相同的 Activity?
How do I start same Activity with different text when click two different buttons?
我正在构建一个 app.When 我点击一个按钮,它会启动一个带有文本 "Hello world" 的 activity(eg.activity_sub),当点击另一个按钮时它将启动相同的 activity 但不同的文本视图 "hi buddy"。
我还没有按下按钮,因为我不知道如何继续。
我正在使用 android 工作室。
这是我的 java 从资产中获取 txt 文件的代码。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
InputStream is = this.getAssets().open("assetstext.txt");
int size = is.available();
// Read the entire asset into a local byte buffer.
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
// Convert the buffer into a string.
String text = new String(buffer);
// Finally stick the string into the text view.
TextView tv = (TextView)findViewById(R.id.assetstext);
tv.setText(text);
} catch (IOException e) {
// Should never happen!
throw new RuntimeException(e);
}
}
启动时将文本作为 putextra 传递 activity,然后在 Activity getString 的 onCreate 中并根据您的过滤显示到文本视图。
您必须在调用第二个 activity 时设置所需的文本,作为调用意图中的额外内容。
Intent starterIntent = new Intent(FirstActivity.class.this,SecondActivity.class)
starterIntent.putExtra("text_key", "<your text>");
"text_key" 是查找键,可让您检索下一个 activity 中的文本。当然,每个按钮都应该为 <"your text"> 设置不同的值。
然后在第二个 activity 你检索这样的文本:
String text = getIntent().getStringExtra("text_key");
我使用的密钥与您在第一个 activity(text_key
)中使用的密钥完全相同,否则您将找不到文本。
终于设置好文字了。
不清楚你想要实现什么,你想要两个textview还是相同的textview和两个不同的文本?
尽管如此,我还是会回答这两个条件。
如果您想拥有多个文本视图,请使用 setVisibilty 方法查看或隐藏其他文本视图:
// here btn is your button and txtview1 and txtview2 are your textviews
// objects respectively.
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
txtView1.setVisibility(View.Gone);
txtView2.setText("hi buddy!");
}
});
否则您可以简单地覆盖文本视图中的字符串,这样就简单多了。就像您对之前的文本视图所做的那样。
我正在构建一个 app.When 我点击一个按钮,它会启动一个带有文本 "Hello world" 的 activity(eg.activity_sub),当点击另一个按钮时它将启动相同的 activity 但不同的文本视图 "hi buddy"。 我还没有按下按钮,因为我不知道如何继续。 我正在使用 android 工作室。
这是我的 java 从资产中获取 txt 文件的代码。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
InputStream is = this.getAssets().open("assetstext.txt");
int size = is.available();
// Read the entire asset into a local byte buffer.
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
// Convert the buffer into a string.
String text = new String(buffer);
// Finally stick the string into the text view.
TextView tv = (TextView)findViewById(R.id.assetstext);
tv.setText(text);
} catch (IOException e) {
// Should never happen!
throw new RuntimeException(e);
}
}
启动时将文本作为 putextra 传递 activity,然后在 Activity getString 的 onCreate 中并根据您的过滤显示到文本视图。
您必须在调用第二个 activity 时设置所需的文本,作为调用意图中的额外内容。
Intent starterIntent = new Intent(FirstActivity.class.this,SecondActivity.class)
starterIntent.putExtra("text_key", "<your text>");
"text_key" 是查找键,可让您检索下一个 activity 中的文本。当然,每个按钮都应该为 <"your text"> 设置不同的值。
然后在第二个 activity 你检索这样的文本:
String text = getIntent().getStringExtra("text_key");
我使用的密钥与您在第一个 activity(text_key
)中使用的密钥完全相同,否则您将找不到文本。
终于设置好文字了。
不清楚你想要实现什么,你想要两个textview还是相同的textview和两个不同的文本?
尽管如此,我还是会回答这两个条件。
如果您想拥有多个文本视图,请使用 setVisibilty 方法查看或隐藏其他文本视图:
// here btn is your button and txtview1 and txtview2 are your textviews
// objects respectively.
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
txtView1.setVisibility(View.Gone);
txtView2.setText("hi buddy!");
}
});
否则您可以简单地覆盖文本视图中的字符串,这样就简单多了。就像您对之前的文本视图所做的那样。