0

この質問は繰り返されるようです。しかし、それらの質問は私の問題を解決するのに役立たなかった。ERROR/AndroidRuntime(775):java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {..}:java.lang.NullPointerException

SimpleCursorAdapterが設定されている(ベイビー名の)リストに "onClick"イベントを実装したいと思います。ユーザーが名前をクリックすると、データベース内のレコードの「ID」を示すトーストが生成されます。ここで

は私のコードです - ここ

public class CommonNames extends Activity { 

TextView rowview; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.common_names); 

    rowview = (TextView)findViewById(R.id.commonName); 

    CommonNamesAdapter cnTable = new CommonNamesAdapter(this); 
    ListView cnListView = (ListView)findViewById(R.id.common_name_layout); 

    cnTable.open(getApplicationContext()); 
    Cursor c = cnTable.fetch_all_common_names_only(); 
    startManagingCursor(c); 

    if(c!=null){ 
     SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
       R.layout.listview, 
       c, 
       new String[] {c.getColumnName(0), c.getColumnName(1)}, 

       new int[] {R.id.rowLayout,R.id.commonName}); 

       cnListView.setAdapter(adapter); 

     } 


    rowview.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 

      Context context = getApplicationContext(); 

      String id = context.getString(R.id.commonName); 
      CharSequence text = "This id of this item is... "+id ; 
      int duration = Toast.LENGTH_SHORT; 

      Toast toast = Toast.makeText(context, text, duration); 
      toast.show(); 

     } 


    }); 
    cnTable.close(); 
} 

はここ

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/rowLayout" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
> 
<TextView 
    android:id="@+id/commonName" 
    android:layout_alignParentLeft="true" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="16dp" 
    android:paddingLeft="14dp" 
    android:paddingTop="4dp" 
    android:paddingBottom="4dp" 
/> 

</LinearLayout> 

listview.xmlである私は自分のアプリケーションを実行すると、私は取得しています
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
> 
<ListView 
    android:id = "@+id/common_name_layout" 
    android:layout_width="fill_parent" 
    android:layout_height= "wrap_content" > 
</ListView> 
</LinearLayout> 

common_names.xmlされますランタイムNullPointerException。ここにLogCatがあります。これを修正する際に私を助けてください。

11-13 18:23:27.852: INFO/COMMON_NAMES_TABLE(775): Inserting record... 
11-13 18:23:27.902: INFO/COMMON_NAMES_TABLE(775): OPening DataBase Connection.... 
11-13 18:23:28.002: DEBUG/AndroidRuntime(775): Shutting down VM 
11-13 18:23:28.002: WARN/dalvikvm(775): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775): FATAL EXCEPTION: main 
11-13 18:23:28.012: ERROR/AndroidRuntime(775): java.lang.RuntimeException: Unable to start activity ComponentInfo{balu.android/balu.android.CommonNames}: java.lang.NullPointerException 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at android.os.Looper.loop(Looper.java:123) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at java.lang.reflect.Method.invoke(Method.java:521) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at dalvik.system.NativeStart.main(Native Method) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775): Caused by: java.lang.NullPointerException 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at balu.android.CommonNames.onCreate(CommonNames.java:42) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
11-13 18:23:28.012: ERROR/AndroidRuntime(775):  ... 11 more 
11-13 18:23:28.032: WARN/ActivityManager(59): Force finishing activity balu.android/.CommonNames 
11-13 18:23:28.032: WARN/ActivityManager(59): Force finishing activity balu.android/.Select 
11-13 18:23:28.585: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{45025710 balu.android/.CommonNames} 
11-13 18:23:31.192: INFO/Process(775): Sending signal. PID: 775 SIG: 9 
11-13 18:23:31.212: INFO/ActivityManager(59): Process balu.android (pid 775) has died. 
11-13 18:23:31.212: INFO/WindowManager(59): WIN DEATH: Window{45084738 balu.android/balu.android.BabyNamesAppActivity paused=false} 

ありがとうございます。

+0

あなたはCommonNamesでnull値を持っています.java 42行目.NPEは、最も簡単に修正可能な例外です(多くの場合)。デバッガの仕組みを学ぶ必要があります。それを試してみてください!そして、ところで:コードなしの例外は私たちのために無益です...そして、誰も特定のコードを検索するgithubを参照したいとは思わない... – WarrenFaith

+0

Ok!私はここに私のコードを保持します。ありがとうございました。 –

答えて

2

行ビューでonClickListenerを設定しないでください。それだけで1行にonClickイベントを設定し、何のコンテンツがない場合には、

cnListView.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView parent, View v, int position, long id) 
    { 
    } 
}); 
+0

合意。 'R.id.commonName'を持つ要素がまだないので、クラッシュしています(rowviewがnullなので)。 ListViewを使用しているので、実際のコンポーネントは、 'onResume()'の実行中/実行中のある時点で、ListView自体がレイアウトされるまでレンダリングされます。 – dmon

+0

@Maria、あなたが言ったように変わった。今私は別のエラーが発生しています。 ' 致命的な例外:メイン ERROR/AndroidRuntime(805):java.lang.IllegalStateException:android.widget.LinearLayoutはこのSimpleCursorAdapterによってバインドできるビューではありません 11-13 19:42:04.462:ERROR/AndroidRuntime' –

+0

@dmonこれは、私がonResume()で実装した後に得たエラーへのリンクです[link](http://stackoverflow.com/questions/8112491/error-androidruntime805-java-lang-illegalstateexception-android-widget-linea )。 –

0

あなたcommon_namesレイアウトはとてもrowviewがあるcommonNameのidを持つビューを持たない使用してみてください(おそらくあなたの問題である)クラッシュしますnullとroview.setOnClickListener()はNPEになります。あなたはそれが簡単に、これを正確に特定する必要があります貼り付けたスタックトレースで

...(775): Caused by: java.lang.NullPointerException 
...(775):  at balu.android.CommonNames.onCreate(CommonNames.java:42) 

のエラーメッセージによって実際

、NPEはCommonNames.javaラインであるとして42

関連する問題