我已经使用Google搜索并阅读了几个Stack Overflow答案,我很确定问题出在我的布局文件中。我还清理了我的项目,所以我的R.java文件被删除了,但我想在发现错误后会自动生成。
这是我的XML代码。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20sp"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/update"
android:textSize="25sp" />
<EditText
android:id="@+id/guess"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:textSize="26sp" />
<TextView
android:id="@+id/display"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="6sp"
android:paddingTop="6sp"
android:text="@string/default"
android:textSize="18sp" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:onClick="evaluate"
android:text="@string/btn" />
</LinearLayout>
以下是显示错误的java行,以防此处出现问题:
Button button = (Button) view;
TextView log = (TextView)(findViewById(R.id.display));
EditText field = (EditText)(findViewById(R.id.guess));
更新:这是我在MainActivity.java文件中的评估方法
public void evaluate(View view)
{
Button button = (Button) view;
TextView log = (TextView)(findViewById(R.id.display));
EditText field = (EditText)(findViewById(R.id.guess));
if(button.getText().toString().charAt(0) == 'S')
{
int guess = Integer.parseInt(field.getText().toString());
if(guess == num)
{
log.setText("Congratulations! You guessed it in " + guessCount + "moves");
button.setText("New game");
}
else
{
guessCount++;
if(guess < num)
log.setText("Try again. Too low");
else
log.setText("Try again. Too high");
}
}
else
refresh(button, log);
}
答案 0 :(得分:2)
R.java
文件夹或res
文件中存在任何编译错误,就会删除 AndroidManifest.xml
。假设您没有编译错误(应该引用R.java中的字段的文件除外),我的第一个调用是查看evaluate
方法,看它是否在当前调用Activity
中,如下所示:
Java代码:
public class MyActivity extends Activity {
Button button;
TextView log;
EditText field;
...
...
@Override
public void onCreate(Bundle savedInstanceState) {
button = (Button) new Button(this);
log = (TextView) findViewById(R.id.display);
field = (EditText) findViewById(R.id.guess);
...
...
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
evaluate(v);
}
});
}
...
...
// **evaluate** is visible(public) and
// within the same activity where the **button** is
public void evaluate(View v) {
...
...
}
}
`
答案 1 :(得分:0)
eclipse不显示红色文件夹中的任何错误吗?
在以下行中: android:onClick =“evaluate”,我之前没有见过这样的价值,是不是正确?