0

我想在另一个下方显示两个字符串,就好像它是一个列表一样。我尝试使用 simple_list_item_1 填充列表视图,但屏幕上什么都看不到。

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

其中 label 是一个数组,其中包含要显示的两个项目。我只能看到一个白色的屏幕。我也希望这个列表是不可点击的。

我希望输出是这样的:

String 1
String 2

我没有使用 Activity,而是使用 View。这是创建视图的方法

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));
}

谢谢。

4

1 回答 1

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;


    }

}

然后让您的活动扩展 Activity 而不是 ListActivity

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

这样做可以显示带有任意数量列表项的标签。

于 2013-02-25T07:10:02.097 回答