2011-01-12 9 views
0

私はカスタムダイアログを使用してタイトル文字列のユーザー入力を取得しようとしていますが、ユーザーが[OK]をクリックすると新しいアクティビティ(基本的にメモ帳)が表示されますtitleタイトルとしての文字列。しかし、onClick()内の新しいアクティビティを起動するメソッドを呼び出そうとすると、エラーが発生します。Android:ダイアログから新しいアクティビティを起動する

は、ここでは、コード

class NewListDialog extends Dialog implements OnClickListener { 

     Button search; 
     EditText text; 

     public NewListDialog(Context context) { 
      super(context); 
      requestWindowFeature(Window.FEATURE_NO_TITLE); 
      setContentView(R.layout.newlist_dialog); 
      search = (Button) findViewById(R.id.dialog_confirm); 
      text = (EditText) findViewById(R.id.dialog_editable); 
      search.setOnClickListener(this); 
     } 

     @Override 
     public void onClick(View v) { 
      if (v == search) { 
       String title_name = text.getText().toString(); 

         // method for launching new activity 
       fireListEdit(title_name); 
      } 
     } 

}

void fireListEdit(String title_name) { 
     Intent i = new Intent(this, ListEdit.class); 
     i.putExtra(InvenDB.KEY_TITLE, title_name); 
     startActivityForResult(i, ACTIVITY_CREATE); 
} 

だと私は

@Override 
public boolean onMenuItemSelected(int featureId, MenuItem item) { 
    switch(item.getItemId()) { 
    case INSERT_ID: 
     NewListDialog dialog = new NewListDialog(this); 
     dialog.show(); 
     return true; 
    case QUIT_ID: 
     finish(); 
     return true; 
    } 
    return super.onMenuItemSelected(featureId, item); 
} 

を編集して、このダイアログを呼び出す:私は上の[OK]をクリックしたときに、私はエミュレータ上で実行しますカスタムダイアログは、私に "予期せず停止したアプリケーション"エラーを返します。

EDIT:

これは、私は彼らが何を意味するのか本当にわからないんだけど、logcatである:39:27.668:

01-12 17 \ ERROR/AndroidRuntime(426):java.lang.RuntimeException :アクティビティを開始できませんComponentInfo {com.jin.inventoryapp/com.jin.inventoryapp.ListEdit}:android.database.CursorIndexOutOfBoundsException:0のサイズでインデックス0が要求されました

+0

エラーの内容や新しいアクティビティの開始方法を教えてください – Falmarri

+0

申し訳ありませんが、シミュレータで実行すると、カスタムダイアログで[OK]をクリックすると「アプリケーションが停止しました予期しないエラー " – Jin

+0

エラーの詳細については、EclipseのLogCatを参照してください。あなたの活動をマニフェストファイルに追加するのを忘れないでください;) –

答えて

0

問題がありますアプリケーションのアダプタ(データ)部分を使用します。 com.jin.inventoryapp.ListEditをバックアップするために使用したAdapterクラスが何であれ、データにアクセスする際に問題があります。つまり、配列またはデータベースを使用してListViewにデータを格納する場合は、最初にチェックします。

Thisは、誰が例外をスローしているかを把握するのに便利です。

+0

ありがとう、それはListedditクラスの私のIDで何か問題があったのですが、その問題を理解するために今... – Jin

+0

Jin、あなたの質問に答えてください。 Btw、データベースの問題をテストする良い方法は、AndroidTestCaseから継承した単体テストを作成することです。こうすることで、dbへのアクセス権を取得し、返されたCursor objをテストできるアクティビティコンテキストにアクセスできます。 – bgs

関連する問題