androidアプリが強制終了してしまいます。
オプションメニューボタンの「MENU_ITEM0」を押すと、他の機能が呼び出されずに強制終了でエラーになってしまいます。
・呼び出すソースファイルです。
「public class CogoterActivity extends Activity {
//メニューアイテムID
private static final int
MENU_ITEM0=0,
MENU_ITEM1=1;
//アクティビティ起動時に呼ばれる
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//リスト要素の情報群の生成
List<ListItem> items=new ArrayList<ListItem>();
for (int i=0;i<50;i++) {
items.add(new ListItem(res2bmp(this,R.drawable.icon),"項目"+i));
}
//リストビューの設定
ListView listView=new ListView(this);
listView.setScrollingCacheEnabled(false);
listView.setAdapter(new ListAdapter(this,items));
setContentView(listView);
new TextView(this);
}
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
//メニューアイテム0の追加
MenuItem item0=menu.add(0,MENU_ITEM0,0,"ぶつぶつ");
item0.setIcon(android.R.drawable.ic_menu_edit);
//メニューアイテム1の追加
MenuItem item1=menu.add(0,MENU_ITEM1,0,"ぶくぶく");
item1.setIcon(android.R.drawable.ic_menu_more);
return true;
}
//メニューアイテム選択イベントの処理
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MENU_ITEM0:
Intent intent = new Intent(this,
cogoter.project.MyActivity.class);
startActivity(intent);
return true;
case MENU_ITEM1:
showDialog(this,"","ぶくぶくを押した");
return true;
}
return true;
}
//ダイアログの表示
private static void showDialog(Context context,String title,String text) {
AlertDialog.Builder ad=new AlertDialog.Builder(context);
ad.setTitle(title);
ad.setMessage(text);
ad.setPositiveButton("OK",null);
ad.show();
}
//リソース→ビットマップ
public static Bitmap res2bmp(Context context,int resID) {
return BitmapFactory.decodeResource(
context.getResources(),resID);
}
}」
・呼び出されるソースコード
「public class MyActivity extends Activity
implements View.OnClickListener {
private final static int WC=LinearLayout.LayoutParams.WRAP_CONTENT;
private final static int FP=LinearLayout.LayoutParams.FILL_PARENT;
private EditText editText;//エディットテキスト
//アクティビティ起動時に呼ばれる
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//戻り値の指定(6)
setResult(Activity.RESULT_CANCELED);
//インテントからのパラメータ取得(5)
String text="";
Bundle extras=getIntent().getExtras();
if (extras!=null) text=extras.getString("text");
//レイアウトの生成
LinearLayout layout=new LinearLayout(this);
layout.setBackgroundColor(Color.rgb(255,255,255));
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);
//OKボタンの生成
Button button=new Button(this);
button.setText("OK");
button.setOnClickListener(this);
button.setLayoutParams(new LinearLayout.LayoutParams(WC,WC));
layout.addView(button);
//エディットテキストの生成
editText=new EditText(this);
editText.setText(text);
editText.setLayoutParams(new LinearLayout.LayoutParams(FP,WC));
layout.addView(editText);
}
//ボタンクリック時に呼ばれる
public void onClick(View v) {
//戻り値の指定(6)
Intent intent =new Intent();
intent.putExtra("text",editText.getText().toString());
setResult(Activity.RESULT_OK,intent);
//アクティビティの終了(7)
finish();
}
}」
補足
回答ありがとうございます。 条件付きで表示させるためにレイアウトから一度外したのが間違いだったようですね