2016-04-12 12 views
0

2日前にJavaとASで作業を始めました。 私は指示に従ってすべてをやったが、エミュレータでアプリケーションを実行しているとき、彼はそれを終了し、私は3 TextViewsとリストビューを作成しようとしましたエラーアクティビティのonCreate()メソッドでのヌルポインタ例外

`java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user.project1/com.example.user.project1.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference` 

を示しています。コードは次のとおりです。

package com.example.user.project1; 

import android.app.Activity; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.app.ListActivity; 
import android.widget.Toast; 
import android.view.View; 
import android.widget.SimpleAdapter; 
import java.util.ArrayList; 
import java.util.HashMap; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     ListView lv = (ListView) findViewById(R.id.list); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.rowlayout); 
     ArrayList<Contact> list = new ArrayList<Contact>(); 
     list.add(new Contact("Surdialx", "Status","Available Works")); 
     list.add(new Contact("Surdial", "Status","Available Works")); 
     list.add(new Contact("Surdialx", "Status","Available Works")); 
     list.add(new Contact("Surdial", "Status","Available Works")); 
     list.add(new Contact("Surdial", "Status","Available Works")); 
     list.add(new Contact("Surdialxx", "Status","Available Works")); 
     SimpleAdapter adapter = new SimpleAdapter(this,list, R.layout.content_scrolling, new String[]{Contact.Serial,Contact.Status,Contact.WorkSt}, new int[]{R.id.tvSerial,R.id.tvStatus,R.id.tvWorkSt}); 

//ここに問題があるとわかりましたが、解決できません。

 lv.setAdapter(adapter); 
    } 
    public class Contact extends HashMap<String, String> { 

     public static final String Serial = "Serial"; 
     public static final String Status = "Status"; 
     public static final String WorkSt = "WorkSt"; 

     public Contact(String Ser, String Stat, String Work) { 
      super(); 
      super.put(Serial, Ser); 
      super.put(Status, Stat); 
      super.put(WorkSt, Work); 
     } 
    } 
} 

答えて

2

コンテンツをアクティビティに設定する前に、findViewByIdにお越しください。 ListViewは、コンテンツ設定後に初期化する必要があります。

それはこのようにする必要があります:

super.onCreate(savedInstanceState); 
setContentView(R.layout.rowlayout); 
ListView lv = (ListView) findViewById(R.id.list); 
+0

OMG)どうもありがとう – Vernir

+0

グレート..もすることができます[受け入れる](http://meta.stackexchange.com/q/5234/179419)私の答えチェックマークをクリックしてください。 –

+0

done、thx again – Vernir

関連する問題