2017-09-13 59 views
0

好,我想從與轉接器陣列做簡單的ListView填充,所以我必須:的ListView適配器不想要設置文本

公共類MainActivity擴展活動{

String[] dish = {"soup", "rice", "grecha", "potato"}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.lunch); 

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    setContentView(R.layout.lunch); 
    ListView lunchLV = (ListView)findViewById(R.id.lunchLV); 
    cafeAdapter ca = new cafeAdapter(); 
    lunchLV.setAdapter(ca); 

} 


public class cafeAdapter extends BaseAdapter { 

    @Override 
    public int getCount() { 
     return dish.length; 
    } 

    @Override 
    public Object getItem(int i) { 
     return null; 
    } 

    @Override 
    public long getItemId(int i) { 
     return 0; 
    } 

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 
     view = getLayoutInflater().inflate(R.layout.list, null); 
     TextView title = (TextView) findViewById(R.id.title); 
     title.setText(dish[i]); 
     return view; 
    } 
} 

}

我也有list.xml文件和lunch.xml文件

有些奇怪的原因title.setText(dish [i]);產生一個錯誤,並使我的程序崩潰。 我有我的xml文件中的id爲「title」的元素,但無論如何java.lang.NullPointerException:嘗試在空對象引用上調用虛擬方法'void android.widget.TextView.setText(java.lang.CharSequence)'。

你有任何想法,我做錯了

+0

我都在同一個文件..菜串只是INSI主要活動。當我試圖只是setText(「你好」)我有同樣的問題 – Sofi

回答

0

您應該使用

TextView title = (TextView) view.findViewById(R.id.title); 

相反:

TextView title = (TextView) findViewById(R.id.title);