課題プログラムが強制終了
現在Androidの学習をしている初心者です。
演習問題の課題プログラムが与えられており、それをこなしています。
ある演習問題でhas application stoppedとなってしまい、強制終了してしまいます。
ググったりしてみたのですが、解決の糸口になるような情報を得られませんでした。
logcatを見た結果、ソースの変更点でNullPointerExceptionが発生していました。
コード的に問題ない(ビルドは通る)ので対策がまったくもって分かりません。
お知恵を拝借したいのですが…。
以下に問題となったソースコードを張り付けておきます。
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.EditText;
import android.widget.TextView;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// コンテキストビューアクションの設定
EditText txtMenuTouch = (EditText) findViewById(R.id.sampleText);
registerForContextMenu(txtMenuTouch); ←ここでNullPointer発生
// 画面描画
setContentView(R.layout.main);
}
// -- オプションメニュー関連
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater iflater = getMenuInflater();
iflater.inflate(R.menu.optionmenu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
final String message;
switch (item.getItemId()) {
case R.id.opt_menu:
message = "オプションメニューが選択されました!";
break;
default:
message = "その他(入らない)";
break;
}
TextView txtMenuTouch = (TextView) findViewById(R.id.showMenuTouch);
txtMenuTouch.setText(message);
return true;
}
// -- コンテキストメニューとサブメニュー関連
final static int CONTEXT_ITEM_ID1 = 1000;
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("こんてきすとめにゅー");
menu.add(0, CONTEXT_ITEM_ID1, 0, "コンテキストメニュー!");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
final String message;
switch (item.getItemId()) {
case CONTEXT_ITEM_ID1:
message = "こんてきすとめにゅーが指定されました!";
break;
default:
message = "その他(入らない)";
break;
}
TextView txtMenuTouch = (TextView) findViewById(R.id.showMenuTouch);
txtMenuTouch.setText(message);
return true;
}
// -- その他機能
public void exitButton_click(View view) {
this.finish();
}
よろしくお願いいたします。
補足
onCreateOptionMenu(Menu menu)のreturn true;の前に持ってきたのですが変化ありません。 他に可能性はないでしょうか。