我有这个问题。我创建了一个带有两个按钮和一个 TextView 的活动。TextView 通过按下按钮“Next”进行更改,而“Previous”按钮用于将 TextView 更改回其原始状态(即 textview1)。但是,当在显示 textview1 时按下“上一个”或在显示 textview2 时按下“下一个”时,应用程序会出错并因此被关闭。我现在想要实现的是在 textview1 开启时使“上一个”按钮消失,在 textview2 开启时使“下一个”按钮消失。
这是我目前使用的类:
package com.example.test8;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Typeface;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageButton;
import android.widget.TextView;
public class Main extends Activity {
private static final String[] Texts=
{"textview1",
"textview2"
};
int textIdx = 0;
TextView Text;
ImageButton Next;
ImageButton Previous;
public static String getText(int idx) {
return Texts[idx];
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView text = (TextView) findViewById(R.id.text);
ImageButton Next = (ImageButton) findViewById(R.id.Next);
ImageButton Previous = (ImageButton) findViewById(R.id.Previous);
Text.setText(getText(textIdx));
Next.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
textIdx++;
Text.setText(getText(textIdx));
}
});
Previous.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
textIdx--;
Text.setText(getText(textIdx));
}
});
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
我考虑过使用 else if 语句,但我无法让它发挥作用,因为我缺乏知识和经验。如果有人可以在这里帮助我,那就太好了。提前致谢。