我对Android很陌生,我正在尝试用一个按钮和一个新的Intent回调(基本上是一个新窗口)编写一些非常简单的应用程序。
这是代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Onclick "Start Game" button
start = (Button) findViewById(R.id.startGame);
tv = (TextView) findViewById(R.id.textView1);
start.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
tv.setText("clicked");
Intent i = new Intent(MainActivity.this, Level1Activity.class);
startActivity(i);
}
});
[...]
正如您所看到的,我有一个按钮(startGame)和一个textView(textView1)。我的问题很简单,当我点击startGame按钮时,没有任何反应(TextView不会改为“点击”,也不会改变屏幕)。按钮以及TextView都是正确设置的,因为Eclipse没有抱怨,但仍然无法正常工作。
以下是视图的XML片段:
<Button android:id="@+id/startGame" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Start Game"></Button>
<TextView android:text="change" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
我相信我的问题真的很愚蠢,而我却看不到它。
由于
编辑:
我发现问题与视图中有多个按钮这一事实有关,因此不止一个回调(当然是在不同的按钮上)。只要我评论了其他回调,startGame
按钮就会按预期开始工作。
答案 0 :(得分:1)
您必须在清单文件中添加一个标记,然后才能正常工作。标签是 - &gt;
请记住在清单文件的应用程序标记中添加此标记,其余代码也可以。试试它肯定会起作用。
答案 1 :(得分:0)
试试这个并告诉将会发生什么。
start.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
tv.setText("clicked");
Intent i = new Intent(MainActivity.this, Level1Activity.class);
startActivity(i);
}
});
答案 2 :(得分:0)
你确定你的清单是正确的吗? 否则这肯定会起作用......
start.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent i = new Intent(view.getContext(), Level1Activity.class);
startActivityForResult(i, 0);
}
});