我试图在第二个活动TextView中读取另一个.txt文件(在原始文件夹中),具体取决于.putextras
(上一个活动)中按下了什么按钮,但它没有&#39工作。我使用 ImageButton but1=(ImageButton) findViewById(R.id.imageButton2);
but1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent int1=new Intent(MainActivity.this,SecondActivity.class);
int1.putExtra("Thistext", "textnumberone");
startActivity(int1);
finish();
}
});
ImageButton but2(ImageButton) findViewById(R.id.imageButton3);
but2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent int2=new Intent(MainActivity.this,SecondActivity.class);
int2.putExtra("Thistext", "textnumbertwo");
startActivity(int2);
finish();
}
});
方法,这是 MainActivity 的代码:
Bundle extradata = getIntent().getExtras();
TextView tv = (TextView)findViewById(R.id.firsttextView);
vitautori.setText(extradata.getString("Thistext"));
if (extradata.equals("textnumberone")) {
String texttxt = "";
StringBuffer sbuffer = new StringBuffer();
InputStream is = this.getResources().openRawResource(R.raw.file);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
try {
while ((texttxt = reader.readLine()) !=null){
sbuffer.append(texttxt + "n");
}
tv.setText(sbuffer);
is.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
}
这是我使用Bundle的SecondActivity代码..
<ul id="cultureMenu" class="top-links list-inline" onselect="">
<li>
<a class="dropdown-toggle no-text-underline" data-toggle="dropdown" href="#"><img class="flag-lang" src=@flag width="16" height="11" alt="lang" />@Resources.Resources.Language</a>
<ul class="dropdown-langs dropdown-menu">
<li onclick="yourfunction(this)"><a value="he" tabindex="-1"><img class="flag-lang" src="~/assets/images/flags/no.png" width="16" height="11" alt="lang" />Norsk</a></li>
<li class="divider"></li>
<li onclick="yourfunction(this)"><a value="en" tabindex="-1"><img class="flag-lang" src="/assets/images/flags/us.png" width="16" height="11" alt="lang" /> ENGLISH</a></li>
<li onclick="yourfunction(this)"><a value="de" tabindex="-1"><img class="flag-lang" src="/assets/images/flags/de.png" width="16" height="11" alt="lang" /> Deutsch</a></li>
<li onclick="yourfunction(this)"><a value="ru" tabindex="-1"><img class="flag-lang" src="/assets/images/flags/ru.png" width="16" height="11" alt="lang" /> Русский </a></li>
</ul>
</li>
答案 0 :(得分:0)
创建Intent
时(当然两个地方),我建议你尝试将类型设置为文字:
int1.setType("text/plain");
看看这是否有帮助。
答案 1 :(得分:0)
您目前正在将 Bundle 数据与
中的字符串进行比较if(extradata.equals(&#34; textnumberone&#34;))
这不起作用,您必须首先提取 String 数据。试试这个:
Bundle extradata = getIntent().getExtras();
String textString = extradata.getString("Thistext");
if (textString.equals("textnumberone")) {
另一件事: 您将 String 从 Bundle 设置为(我猜) TextView
vitautori.setText(extradata.getString(&#34; Thistext&#34));
但我没有在任何地方看到vitautori
的初始化。因此,请确保它已初始化或将崩溃。