2013-02-25 145 views
0

我想顯示兩個字符串在其他下面,就好像它是一個列表。 我嘗試使用simple_list_item_1來填充列表視圖,但屏幕上沒有任何東西可見。使用arrayadapter填充列表視圖

((ListView)view).setAdapter(new ArrayAdapter<String> 
(RealScreen.getAndroidBaseContext(),android.R.layout.simple_list_item_1, label)); 

其中label是包含兩個要顯示的項目的數組。我只能看到一個白色的屏幕。我也希望這個列表不可點擊。

我所要的輸出是這樣的:

String 1 
String 2 

我不與活動合作,而不是與查看。 這裏是它創建視圖

public void createView(JSONObject definition) { 
    // TODO Auto-generated method stub 
    super.createView(definition); 
    final JSONArray rowArray = definition.optJSONArray(KeyConstants.KEY_ROWS); 
    final JSONArray columnArray = definition.optJSONArray(KeyConstants.KEY_COLUMNS); 
    if (rowArray != null) { 
      label = new String[rowArray.length()]; 
      for (int i = 0; i < rowArray.length(); i++) { 
       final JSONObject candidate = rowArray.optJSONObject(i); 
       if(candidate!=null){ 
        label[i]=candidate.optString(KeyConstants.KEY_LABEL_TEXT, null); 
       } 
      } 
    } 
    ((ListView)view).setAdapter(new ArrayAdapter<String>(RealScreen.getAndroidBaseContext(),android.R.layout.simple_list_item_1, label)); 
} 

感謝方法。

+0

如果不是一個活動比它是一個視圖? – Pragnani 2013-02-25 06:52:41

+0

做一些Google搜索..有很多例子可用.. – 2013-02-25 06:53:27

+0

@Pragnani是的,這是一個看法。 – 2013-02-25 07:01:27

回答

0

首先創建一個自定義適配器類,如下

類MyAdapter擴展ArrayAdapter {

private Context context; 

    private ArrayList<String> list; 

    public MyAdapter(Context context, 
      ArrayList<String> list) 
      { 
     super(context, R.layout.layout_list); 
     this.context = context; 
     this.list = list; 
    } 




    @Override 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 

     ViewHolder holder = null; 

     if (convertView == null) { 
      holder = new ViewHolder(); 

      LayoutInflater inflater = (LayoutInflater) context 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      convertView = inflater.inflate(R.layout.layout_list, 
        null); 

      convertView.setTag(holder); 
      holder.string1 = (TextView) convertView 
        .findViewById(R.id.stringgID1); 



      holder.string2 = (TextView) convertView 
        .findViewById(R.id.stringID2); 


     } 
        else 
        { 
      holder = (ViewHolder) convertView.getTag(); 
     } 


     holder.string1 .setText(list.get(postion)); 
     holder.string2 .setText(list.get(position)); 

     return convertView; 
    } 

    @Override 
    public int getCount() { 

     return list.size(); 
    } 

    class ViewHolder { 
     TextView string1 = null; 
     TextView string2 = null; 


    } 

} 

然後讓你的活動延伸活動和不ListActivity

listView.setAdapter(新MyAdapter(youtactivityame.this,label);

這樣可以顯示任意數量的列表項目的標籤。