2014-08-30 32 views
-1

從baseadapter延伸mycustom適配器,但是當我運行我的主要的Java文件,這表明主要活動沒有 列表視圖項從baseadapter延伸爲什麼安卓mycustom適配器不工作

public class MyCustomadapter extends BaseAdapter{ 
    private Context mycontext; 
    String[] mystringlist; 

    public MyCustomadapter(Context context,String[] strText) { 

     this.mycontext=context; 
     this.mystringlist = strText; 
    } 
    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return mystringlist.length; 
    } 

    @Override 
    public Object getItem(int arg0) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View rowView = convertView; 
     LayoutInflater inflater = (LayoutInflater) mycontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     rowView = inflater.inflate(R.layout.each_row, parent,false); 
     TextView tv = (TextView) rowView.findViewById(R.id.rowtxt); 
     tv.setText(mystringlist[position]); 
     return rowView; 
    } 

} 

mycustom適配器,但是當我運行主要的Java文件,它表明主要活動沒有 列表視圖項

+0

很多Dhaval Condaliya;只是this.mycontext =上下文已經解決了我的問題 – raton 2014-08-30 08:13:15

+0

實際上,擴展'ArrayAdapter'對於這個基本的簡單工作來說更好,並且已經大部分這些方法已被本身覆蓋 – 2014-08-30 08:20:43

回答

3

問題:

return 0; 

您將返回0意味着您的ListView將不會顯示任何列表項目,因此會給您0個結果。 您需要返回number of item in your array長度

樣本:

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return mystringlist.length; 
} 
+0

我試過了。但現在顯示應用程序意外停止 – raton 2014-08-30 08:04:58

+0

@raton嘗試'mystringlist.length - 1' – 2014-08-30 08:05:28

+0

公共類MainActivity擴展ActionBarActivity { \t @覆蓋 \t保護無效的onCreate(捆綁savedInstanceState){ \t \t super.onCreate(savedInstanceState); \t \t setContentView(R.layout.activity_main); \t \t ListView lv =(ListView)findViewById(R.id.listView1); \t \t String [] name = {「raton」,「kumar」,「swarnokar」}; \t \t \t \t lv.setAdapter(new MyCustomadapter(name)); \t} – raton 2014-08-30 08:08:07

1
@Override 
public int getCount() 
{ 
    // TODO Auto-generated method stub 
    return mystringlist.length(); 
} 
1

我的想法是延長ArrayAdapter,看一看下面的代碼

public class MyAdapter extends ArrayAdapter<String>{ 
    public MyAdapter(Context context, String[] items) { 
     super(context, 0, items); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // your codes for generating rows 
     String thisItem = getItem(position); 
    } 
} 

大功告成,還你不再需要重寫其他方法!

0

正如附錄getItem()方法不正確。它應該如下所示:

@Override 
public Object getItem(int arg0) { 
    return mystringlist[position]; 
}