:)
我正在尝试创建一个显示ListFragment的应用程序。 当用户单击ListFragment中的某个项目时 它会更改另一个活动的TextView中的文本。
到目前为止,我尝试过这种方法:
(这是在Fragment活动中,item是一个静态字符串)
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
item = ((TextView) v).getText().toString();
Intent intent = new Intent(AboutFragment.this.getActivity(),Shower.class);
startActivity(intent);
}
}
(这是在空活动中获取项目的字符串并使用它来确定在TextView上显示的内容)
TextView texter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shower);
texter = (TextView) findViewById(R.id.text);
Setter();
}
public void Setter(){
switch (AboutFragment.item.toString()) {
case "moon": texter.setText("Mortal");
case "blue":texter.setText("Job");
}
}
目前它只显示“作业”一词,当我点击另一个单词时它不会改变。我尝试使用onResume,但无济于事。
感谢您提供的任何帮助。 :)
答案 0 :(得分:2)
您需要一个break语句来终止交换机的执行。如果没有它,就会执行“月亮”案例,然后立即执行“工作”案例,从而导致您描述的行为。
switch (AboutFragment.item.toString()) {
case "moon": texter.setText("Mortal");
break;// add this or else the next case will execute
case "blue":texter.setText("Job");
break;// you should add this too
}
答案 1 :(得分:2)
为什么你不使用putExtras()
?也许它会做你想做的事。
1-首先onListItemClick()
应该是这样的:
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
String text = l.getItemAtPosition(position).toString();
Intent intent = new Intent(getActivity(),Shower.class);
intent.putExtra("KeyString", text);
getActivity().startActivity(intent);
}
2-在你的empty Activity
中,你应该这样做:
TextView texter;
String myText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shower);
texter = (TextView) findViewById(R.id.text);
Bundle extras = getIntent().getExtras();
if (extras != null) {
myText = extras.getString("KeyString");
}
Setter();
}
public void Setter(){
switch (myText) {
case "moon": texter.setText("Mortal");
break;
case "blue":texter.setText("Job");
break;
}
}
希望它有所帮助......我试图解决你的问题,所以让我知道它是不是你想要的。