私はグーグルでいくつかのスタックオーバーフローの回答を読みましたが、ここのレイアウトファイルに問題があると確信しています。また、プロジェクトをクリーンアップしたため、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 ファイルからの私の evaluate メソッドは次のとおりです。
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);
}