2012-03-20 4 views
1

私はチェックボックス、画像、およびテキストフィールドを持つリストビューを持っています。今では、テキストフィールドに複数の項目を表示したいと考えています。問題は、きちんとした列で議論が欲しいということです。どういうわけか、テキストフィールドにタブストップや書式などを設定することはできますか、実際には複数のテキストフィールドを作成して、それぞれのフィールドを独自のフィールドに設定する必要がありますか?Android/Javaのリストビューに複数のテキストアイテムを表示するにはどうすればよいですか?

私のリストは、多少のようになります。何かアドバイスのため

[Image] [checkbox] "arg11 arg12 arg13" 
[Image] [checkbox] "arg21 arg22 arg23" 
[Image] [checkbox] "arg31 arg32 arg33" 

感謝を。

編集:物事を明確にする。私は画像/チェックボックスと1つのテキストフィールドを持つ作業リストビュー/アダプタを既に持っています。私はAndroidにはまったく新しいので、テキストフィールドに複数のテキスト項目を表示するためのエレガントな方法があるかどうかを知りたいと思っています。 Windowsではtabstoppsを使うだけで、列や列に表示されますが、似たようなものがあるかどうか、または個々のテキストフィールドが列のテキストフィールドを取得する必要があるかどうかを知るために、アンドロイドの周りには十分にわかりません。

答えて

2

行xmlを再作成する必要があります。私はあなたがそれぞれとすべての行のデザインを変更することができる行xmlについて知っていると思います。相対レイアウトまたはリニアレイアウトを作成し、以下に示すようにビューを追加します。

[Image] [checkbox] "text1" "text2 "text3" 
[Image] [checkbox] "text1" "text2 "text3" 
[Image] [checkbox] "text1" "text2 "text3" 

タブスペースを取る代わりに、3つの異なるTextViewを使用します。それぞれのTextViewごとに「1」の重みを保持し、合計WeightSoundsを3にしたLinearLayoutにこれらを追加します.3つのTextViewすべてが親ビューに均等に配置されます。

はこれを試してみて、レムは、テキストのサイズについて確信しているなら、あなたは、あなたのテキストにタブストップを使用することができます.....あなたはそれを修正するかどうか

+0

ありがとう、それはinteresstingの音、私はそれを試みます。 – HardCoder

1

基本的には、ListView用に独自のアダプタを実装する必要があります。

まず、baseAdapterまたはその派生物のいずれかの独自のアダプタクラスを作成する必要があります。次に、ListViewアイテムの表示ロジックを実装する必要があります。あなたのtextViewsを設定するよう

、imageViewsなど

は、詳細は、このチュートリアルをチェックしてください。私の以前の記事の1から

http://www.vogella.de/articles/AndroidListView/article.html

+0

こんにちは、お返事に感謝、あなたのリストビューのような

ためCustomAdapterを使用しています。私はすでにあなたが言及したと思う(私のポストでそれを明確に)。私が知りたいのは、列にテキストを表示するための最良の方法でしょう。 – HardCoder

+1

Textviewsを均等に配置する場合は、TableLayoutまたは構造化された(重み付き)LinearLayoutのいずれかを使用できます。 – josephus

+0

最良の方法は、テキストアイテムごとに1つのTextViewを持つことです。しかし、1つのTextViewを使用して、必要に応じて連結することもできます。 –

0

あなたがあなたのロジック の実装を処理するカスタムアダプタを作成する必要が リストビューで景色を眺めながら処理をしたいときはいつでもとその情報を必要に応じてビューに渡します。

0

を知っています。それが動作しない場合は、あなたの行レイアウトを拡張することに固執しています。 Pavandroidで述べたように

3

新しいxml say row.xmlを作成します。これは、各行のlistview内で膨らませることができます。

希望する行を、たとえば:

行に設定します。

<LinearLayout android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
     android:orientation="horizontal"> 
    <ImageView ..../> 
    <CheckBox ...../> 
    <TextView ...../> 
    <TextView ...../> 
</LinearLayout> 

XML

はその後

listView.setAdapter(new CustomAdapter()); 

CustomAdapter、

class CustomAdapter extends BaseAdapter{ 
    publicCustomAdapter() { 
     mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 



    @Override 
    public int getCount() { 
     return xyz.size(); 
    } 

    @Override 
    public String getItem(int position) { 
     return xyz.get(position); 
    } 

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

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

     ViewHolder holder = null; 
     if (convertView == null) { 
      convertView = mInflater.inflate(R.layout.row, null); 
      holder = new ViewHolder(); 
     holder.imageView = (ImageViewView)convertView.findViewById(R.id.image); 
     holder.checkbox = (CheckBox)convertView.findViewById(R.id.checkbox); 
      holder.textView1 = (TextView)convertView.findViewById(R.id.text1); 
      holder.textView2 = (TextView)convertView.findViewById(R.id.text2); 
      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder)convertView.getTag(); 
     } 
     //TODO set the values for views and return view 
     return convertView; 
    } 

} 
関連する問題