2012-02-24 4 views
1

私は以下のコードでListViewを使用しています。問題は、強調表示されていないリスト項目をクリックしたときです。あなたは、arg0.setBackgroundColor(Color.RED);を使用しようとしましたが、アイテムをクリックして指を上に置かないと、何も起こりません。アイテムをクリックして指を上げたときに強調表示され、強調表示されます。 ハイライトが削除されたらどうすればいいですか? なぜこれが単純なリストビューのように動作しないのかわかりません。 mainlayoutであなたのdrawableフォルダにとlist_itemセット、バックグラウンドで、このxmlファイルを置くlistadapterのリストビューのハイライトアイテム

private class ListAdapter extends ArrayAdapter { 
     private ArrayList mList; 
     private Context mContext; 

     public ListAdapter(Context context, int textViewResourceId, ArrayList list) { 
      super(context, textViewResourceId, list); 
      this.mList = list; 
      this.mContext = context; 
     } 

     public View getView(int position, View convertView, ViewGroup parent) { 
      View view = convertView; 

      try { 
       if (view == null) { 
        LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        view = vi.inflate(R.layout.list_item, null); 
       } 

       final Object listItem = mList.get(position); 
       if (listItem != null) { 

        ((TextView) view.findViewById(R.id.tv_name)).setText(((HotOrNot) listItem).getName()); 
        view.setOnClickListener(new OnClickListener() { 
         public void onClick(View arg0) { 
          arg0.setBackgroundColor(Color.RED); 
          Toast.makeText(SQLView.this, "ID: " + ((HotOrNot) listItem).getID(), Toast.LENGTH_SHORT).show(); 
          Toast.makeText(SQLView.this, "Name: " + ((HotOrNot) listItem).getName(), Toast.LENGTH_SHORT).show(); 
          Toast.makeText(SQLView.this, "Descr: " + ((HotOrNot) listItem).getDescription(), Toast.LENGTH_SHORT).show(); 


          // finish(); 
         } 
        }); 
       } 
      } catch (Exception e) { 
       //Log.i(Splash.ListAdapter.class.toString(), e.getMessage()); 
      } 
      return view; 
     } 
    } 
+0

はこの質問を見てください - それはあなたが必要なものに対する解決策を説明しています。つまり、リスト項目の背景にセレクタを使用する必要があります。 http://stackoverflow.com/questions/9434317/listview-with-listadapter-highlight-item –

答えて

0

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 

     <item android:drawable="#FFFFFF" android:state_pressed="false" android:state_selected="false"/> 
     <item android:drawable="#FF00FF" android:state_pressed="true" android:state_selected="false"/> 
     <item android:drawable="#FF00FF" android:state_pressed="true" android:state_selected="true"/> 

    </selector> 
+0

あなたのコメントを理解できないもの –

+0

私の答えを理解することはできません。最初に私の答えを<?xml ...からコピーしてくださいDrawableフォルダを右クリックし、XMLファイルを作成してlist_bgという名前をつけ、Drawableフォルダに保存してください(レイアウトはありません)。その後、レイアウトlist_itemにレイアウトを貼り付け、android:background = "@ drawable/list_bg"プロジェクトをきれいにしてビルドして再実行します –

関連する問題