我很确定我在这里错过了一些非常简单的东西......我是android的新手,所以我很抱歉。我认为我没有正确地将按钮链接到听众,基本上我认为我正在做的是制作一个列表器(用于按钮)并检查哪个按钮被按下,
package com.coursework;
import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class mainMenu extends Activity{
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.mainmenu);
TextView txt = (TextView) findViewById(R.id.gameName);
Typeface font = Typeface.createFromAsset(getAssets(), "RetroElectro.ttf");
txt.setTypeface(font);
Button.OnClickListener listener = new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.id == R.id.play){
Log.w("Test","one");
}
else if(v.id == R.id.options){
Log.w("Test","one");
}
}
};
((Button)findViewById(R.id.play)).setOnClickListener(listener);
} }
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/gameName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/gameName"
android:layout_centerHorizontal="true"
android:gravity="center"
android:layout_marginTop="20dp"
android:textSize="80sp"
/>
<Button
android:layout_width="@dimen/button"
android:id="@+id/play"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="120dp"
android:text="@string/play"></Button>
<Button
android:layout_width="@dimen/button"
android:id="@+id/options"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/play"
android:text="@string/options"></Button>
<Button
android:layout_width="@dimen/button"
android:id="@+id/scoreboard"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/options"
android:text="@string/score"></Button>
<Button
android:layout_width="@dimen/button"
android:id="@+id/exit"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/scoreboard"
android:text="@string/exit"></Button>
</RelativeLayout>
问题的部分是行if(v.id == R.id.play){
和if(v.id == R.id.play){
,错误,
id cannot be resolved or is not a field
答案 0 :(得分:2)
不是v.id
调用方法getId()
它将返回视图的标识符。
例如:
v.getId()
那是:
if(v.getId() == R.id.play){
//statements
}
http://developer.android.com/reference/android/view/View.html#getId()
答案 1 :(得分:0)
您应该使用.getId()而不是.id
像这样:
v.getId();
答案 2 :(得分:-1)
尝试导入应用的R文件,例如:
import com.coursework.R;