2010-11-21 9 views
0


現在、で別のアクティビティを呼び出す際に、Intentを使用しています。私は2つのレイアウトを持っています。 1番目のレイアウトにはEditTextという文字列がデータベースから取得されます。 2番目のレイアウトにはEditTextもありますが、それは空です。 OptionsMenuItemは1番目のレイアウトです。 MenuItemをクリックすると、2番目のレイアウトを呼び出し、1番目のレイアウトのテキストを2番目のレイアウトのEditTextに抽出することになっていますが、代わりにクラッシュします。私はActivityResultの方法を使ってみましたが、それでも動作させることはできません。あなたが私を助けてくれることを願っています。インテントがクラッシュする

これは意図は、第一レイアウトの主な活動のためにある私のJavaコードです:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    super.onCreateOptionsMenu(menu); 

    // Build the menus that are shown when editing. 
    if (mState == STATE_EDIT) { 
     menu.add(0, REVERT_ID, 0, R.string.menu_revert) 
       .setIcon(android.R.drawable.ic_menu_revert); 
     if (!mNoteOnly) { 
      menu.add(0, DELETE_ID, 0, R.string.menu_delete) 
        .setIcon(android.R.drawable.ic_menu_delete); 
      menu.add(1, ADD_ID, 1, R.string.add_namespace); 
      menu.add(2, MENU_ITEM_ADD, 2, R.string.menu_add); 
     } 

    // Build the menus that are shown when inserting. 
    } else { 
     menu.add(0, DISCARD_ID, 0, R.string.menu_discard) 
       .setIcon(android.R.drawable.ic_menu_delete); 
      menu.add(1, ADD_ID, 1, R.string.add_namespace); 
    } 

    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle all of the possible menu actions. 
    switch (item.getItemId()) { 
    case DELETE_ID: 
     deleteNote(); 
     finish(); 
     break; 
    case DISCARD_ID: 
     cancelNote(); 
     break; 
    case REVERT_ID: 
     cancelNote(); 
     break; 
    case ADD_ID: 
    addNamespace(); 
    break; 
    case MENU_ITEM_ADD: 
    testActivity(); 
     break; 
    } 
    return super.onOptionsItemSelected(item); 
} 
private final void testActivity() 
{ 
Intent i = new Intent(this, TitleEditor.class); 
startActivityForResult(i, STATIC_INTEGER_VALUE); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
super.onActivityResult(requestCode, resultCode, data); 

switch(requestCode) 
{ 
    case(STATIC_INTEGER_VALUE): 
    { 
    if(resultCode == Activity.RESULT_OK) 
    { 
    newTextTemplate = (EditText) findViewById(R.id.smsTemplate); 
String newTemplate = data.getStringExtra(TitleEditor.PUBLIC_STATIC_STRING_IDENTIFIER); 
    newTextTemplate.setText(newTemplate); 
    } 
    break; 
    } 
} 
} 

これは第二のレイアウトと私のJavaコードです:によって要求された

public class TitleEditor extends Activity implements View.OnClickListener { 

    private static final String[] PROJECTION = new String[] { 
      NotePad.Notes._ID, // 0 
      NotePad.Notes.TITLE, // 1 
      NotePad.Notes.TEMPLATE, // 2 
    }; 

    private static final int COLUMN_INDEX_TITLE = 1; 
    private static final int COLUMN_INDEX_TEMPLATE = 2; 

    private Cursor mCursor; 

    private EditText mToContacts; 
    private EditText mFromTemplate; 

public static final String PUBLIC_STATIC_STRING_IDENTIFIER = null; 

    private Uri mUri; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.title_editor); 

     mUri = getIntent().getData(); 

     mCursor = managedQuery(mUri, PROJECTION, null, null, null); 

     mFromTemplate = (EditText) this.findViewById(R.id.smsTemplate); 
     mFromTemplate.setOnClickListener(this); 

     Button b = (Button) findViewById(R.id.ok); 
     b.setOnClickListener(this); 


    } 

    public void onClick(View v) { 
    Intent resultIntent = new Intent(); 
    resultIntent.putExtra(PUBLIC_STATIC_STRING_IDENTIFIER, NoteEditor.smsTemplate); 
    setResult(Activity.RESULT_OK, resultIntent); 
     finish(); 
    } 
} 

マイlogcat srnathhs: 11-22 04:39:12.635:エラー/ AndroidRuntime(456):キャッチされていないハンドラ:キャッチされていない例外のためにメインスレッドが終了します 11-22 04:39:12.815:ERROR/AndroidRuntime(456):java.lang。 RuntimeException:アクティビティを開始できませんComponentInf o {com.example.android.notepad/com.example.android.notepad.TitleEditor}:java.lang.NullPointerException 11-22 04:39:12.815:ERROR/AndroidRuntime(456):android.app.ActivityThread。 performLaunchActivity(ActivityThread.java:2401) 11-22 04:39:12.815:ERROR/AndroidRuntime(456):android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)で 11-22 04:39:12.815: ERROR/AndroidRuntime(456):android.app.ActivityThread.access $ 2100(ActivityThread.java:116) 11-22 04:39:12.815:ERROR/AndroidRuntime(456):android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1794) 11-22 04:39:12.815:ERROR/AndroidRuntime(456):android.os.Handler.dispatchMessage(Handler.java:99) 11-22 04:39:12.815:エラー/ AndroidRuntime(456):android.os.Looper.loop(Looper.java:123) 11-22 04:39:12.815:ERROR/AndroidRuntime(456):android.app.ActivityThread.main(ActivityThread.java:4203) 11-22 04:39:12.815:ERROR/AndroidRuntime(456):at java.lang.reflect.Method.invokeNative(ネイティブメソッド) 11-22 04:39:12.815:ERROR/AndroidRuntime(456):java.lang.reflect.Method.invoke(Method.java:521) 11- 22 04:39:12.815:ERROR/AndroidRuntime(456):com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:791) 11-22 04:39:12.815:ERROR/AndroidRuntime(456) ):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549) 11-22 04:39:12.815:ERROR/AndroidRuntime(456):at dalvik.system.NativeStart.main(ネイティブメソッド) 11-22 04:39:12.815:ERROR/AndroidRuntime(456):原因:java.lang.NullPointerException 11-22 04:39:12.815:エラー/ A ndroidRuntime(456):android.content.ContentResolver.acquireProvider(ContentResolver.java:574) 11-22 04:39:12.815:ERROR/AndroidRuntime(456):android.content.ContentResolver.query(ContentResolver.java: AndroidRuntime(456):android.app.Activity.managedQuery(Activity.java:1493) 11-22 04:39:12.815:ERROR/AndroidRuntime(456) 11-22 04:39:12.815: :android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:System.Evit.java:84):11-22 04:39:12.815:ERROR/AndroidRuntime(456):android.app.Instrumentation.callActivityOnCreate AndroidRuntime(456):android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364) 11-22 04:39:12.815:ERROR/AndroidRuntime(456) 11-22 04:39:12.815: :... 11さらに

+1

アプリケーションがクラッシュしたときにスタックトレースが必要です。それをここに追加できますか? – srinathhs

+0

クラッシュは何ですか?よく見られる質問を見る(私の名前をクリックする)。 – KevinDTimm

+0

@srinathhs:あなたがLogCatについて話しているなら、私はそれを投稿することができます。しかし、私はそれでどんな間違いも見ます。 –

答えて

0

この質問は締め切られました。私はこのエラーを解決するための答えを誤って見つけました。私のコードの2行が第2アクティビティの作成を妨害しているようです。ありがとう人^^

2

簡単な質問マニフェストに2番目のアクティビティを登録しましたか?そうでなければ、呼び出されるたびにアプリケーションがクラッシュします。

+0

はい、アクティビティはマニフェストファイルに登録されています。私のコードに何が間違っているのか分かりません。 –

関連する問題