0

2つの文字列をリストのように上下に表示したいと思います。simple_list_item_1を使用してリストビューにデータを入力しようとしましたが、画面に何も表示されません。

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

ここで、labelは、表示される2つの項目を含む配列です。私が見ることができるのは白い画面だけです。また、このリストはクリックできないようにしたいです。

出力を次のようにします。

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

ありがとう。

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;


    }

}

そして、あなたのアクティビティがListActivityではなくActivityを拡張するようにします

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

これを行うと、任意の数のリストアイテムを含むラベルを表示できます。

于 2013-02-25T07:10:02.097 に答える