2013-03-26 9 views
5

私はクリケットのためのアプリを開発しています。私の要求はチーム1を選択した場合、利用可能な国名のリストが表示されなければならず、インドからの国名を選択すると、インドからのプレーヤーのリストが表示され、その中から複数のプレーヤーを選択する必要があります。私はすべてをやった。しかし、私の問題は、選手を選択するためにandroid.R.layout.simple_list_item_multiple_choiceを使用していることです。私は単純なリストビューを使用しており、そのリストの背景は黒い画像です。そして、私のリストビューはそのようなものです単純なListViewのテキストの色を変更する複数選択Android

<ListView 
    android:id="@+id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="8.5" 
    android:cacheColorHint="#00000000" 

    /> 

ここで問題はリストビューの値が黒で表示されていることです。すでに私は黒の背景画像を持っています。そして値は黒でも黒です。それは良い見ていないので。 oカスタムアダプターを変更せずにリストビュー値の色を白に変更する方法。

そして、これは

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    ...other styles 

//レイアウトXMLでのListViewこの属性style="@style/ListFont"を置くこの

<style name="ListFont" parent="@android:style/Widget.ListView"> 
    <item name="android:textColor">#FFFFFF</item> 
    </style> 

    ...other styles 

    </resources> 

を追加私のアダプタクラス

adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,playersName); 
    lvview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
    lvview.setAdapter(adapter); 

答えて

0

のstyles.xmlある

+0

アンドロイドなし:の、textColor =「白@カラー/」 – sprixes

+0

答えはhttp://stackoverflow.com/questions/4533440/を参照してください属性色/白とのTextViewを作成し、リストビューに入れていますandroid-listview-text-color – sprixes

+0

これで複数選択リストビューを使用する方法を教えてください。 – user2210356

8

あなたはすべてListView itemsの色を変更するCustome TextViewを作成するには、デフォルトのandroid.R.layout.simple_list_item_multiple_choiceArrayAdapterに渡すのではなく、異なるTextColor属性を持つカスタムリスト項目XMLを渡す必要があります。フォルダのレイアウトの下custom_list_item.xml作成たとえば

、:そして、

<?xml version="1.0" encoding="utf-8"?> 
    <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/textView" 
     android:layout_width="fill_parent" 
     android:layout_height="?android:attr/listPreferredItemHeight" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:gravity="center_vertical" 
     android:checkMark="?android:attr/listChoiceIndicatorSingle" 
     android:paddingLeft="6dip" 
     android:paddingRight="6dip" 
     android:textColor="#FF00FF" 
     /> 

は、それが以下のようにのようにアダプタに渡さ:

 new ArrayAdapter<String>(this, R.layout.custom_list_item, playersName); 

EDITED:ここ

コードですこれは正常に動作しています。テストしました。コードの下

lv.setAdapter(new ArrayAdapter<String>(this, R.layout.custom_list_item, playersName)); 
    lv.setBackgroundColor(Color.BLACK); 
    lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
    lv.setOnItemClickListener(new OnItemClickListener() 
    { 
     @Override 
     public void onItemClick(AdapterView<?> p_arg0, View p_arg1, int p_arg2, long p_arg3) 
     { 
      my_sel_items = new String("Selected Items"); 
       SparseBooleanArray a = lv.getCheckedItemPositions(); 
       for (int i = 0; i < a.size(); i++) { 
        if (a.valueAt(i)) { 
         my_sel_items = my_sel_items + "," 
           + (String) lv.getAdapter().getItem(i); 
        } 
       } 
       Log.v("values", my_sel_items); 
     } 
    }); 

リストビューのレイアウト

 <ListView 
         android:id="@+id/android:list" 
         android:layout_marginTop="60dip" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:textColor="#000000" 
        /> 
+0

それは私が試して、それを動作させても動作するはずです。 – GrIsHu

+0

実装方法を教えてください。 – GrIsHu

+0

正確に何が欠けているかを理解できるように、コードやスクリーンショットを投稿できますか? – GrIsHu

0

チェック:ログイン

package com.example.mapsdemo; 

import java.util.ArrayList; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.util.SparseBooleanArray; 
import android.view.Menu; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.Spinner; 

public class MainActivity extends Activity { 

    ArrayList<String> a = new ArrayList<String>(); 

    private ListView lView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     fillarray(); 
     lView = (ListView) findViewById(R.id.listView1); 
     lView.setAdapter(new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_multiple_choice, a)); 
     lView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

     lView.setOnItemClickListener(new OnItemClickListener() { 

      private String my_sel_items; 

      public void onItemClick(AdapterView arg0, View arg1, int arg2, 
        long arg3) { 
       // List list = new ArrayList(); 
       my_sel_items = new String("Selected Items"); 
       SparseBooleanArray a = lView.getCheckedItemPositions(); 

       for (int i = 0; i < a.size(); i++) { 
        if (a.valueAt(i)) { 
         my_sel_items = my_sel_items + "," 
           + (String) lView.getAdapter().getItem(i); 
        } 
       } 
       Log.v("values", my_sel_items); 
      } 
     }); 
    } 

    private void fillarray() { 
     // TODO Auto-generated method stub 
     a.clear(); 
     a.add("a"); 
     a.add("b"); 
     a.add("c"); 
     a.add("d"); 
     a.add("e"); 

    } 

} 

あなたの結果

03-26 12:25:06.106: V/values(3301): Selected Items,a 
03-26 12:25:06.810: V/values(3301): Selected Items,a,b 
03-26 12:25:07.466: V/values(3301): Selected Items,a,b,c 
03-26 12:25:08.136: V/values(3301): Selected Items,a,b,c,d 

編集:

チェックこのlinkあなたは、このコードではどのようなフォントの色&リストビューの背景色を使用することができます。

+0

私はこれを聞いていない。私はリストビューのテキストの色を白にしたい..私はこれを行うにはどうすればいいですかカスタムレイアウトを使用することができるの – user2210356

+0

..あなたはコードを与えて待ってください.. –

+0

私の編集ansをチェック.. –

0

Luksprog解決策は受け入れられ、難しくありません。しかし、ライン

if (position == 1)