2015-02-28 3 views
0

мне нужно изменить мой код, чтобы сделать его показать текст с изображением не менять весь код на другой с функцией изображения:Как вставить изображение в ListView?

Это мой код для изображений:

int[] imgs = new int[] 
    { 
     R.drawable.wifi, 
     R.drawable.bluetooth, 
     R.drawable.usb, 
     R.drawable.cloud, 
     R.drawable.remote, 

    }; 

И это мой ListView код:

listView = (ListView) findViewById(R.id.operations); 
listView.setTextFilterEnabled(true); 
String[] values = new String[] 
     {"Nearby Wifi", 
     "Nearby Blutooth", 
     "Direct USB Connected", 
     "Google Cloud Print", 
     "Printer Remote" 
     }; 

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
     R.layout.custom_listview, android.R.id.text1, values); 
listView.setAdapter(adapter); 
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, 
          int position, long id) { 


     int itemPosition = position; 

     String itemValue = (String) listView.getItemAtPosition(position); 

     //if condition 
    } 


}); 

И это мой custom_listview:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
android:paddingTop="2dip" 
android:paddingBottom="3dip" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:textSize="16dp" 
android:textColor="@android:color/black" 
android:textStyle="bold" 
    /> 

Как изменить его, чтобы показать текст с изображением?

+0

Post ваш файл 'макета custom_listview' ... – miselking

+0

я отредактировал мой вопрос, увидеть –

ответ

0

Вид, который возвращается на ваш адаптер, - это TextView. Что вы можете сделать, это использовать setCompoundDrawables

Пример: Edit: ...

listView.setAdapter(new BaseAdapter() { 
     @Override 
     public int getCount() { 
      return values.size(); 
     } 

     @Override 
     public Object getItem(int position) { 
      return values.get(position); 
     } 

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

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

      LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
      if(convertView == null) { 
       convertView = inflater.inflate(R.layout.custom_textview); 

       TextView tv = (TextView) convertView.findViewById(R.id.text1); 
       tv.setCompoundDrawables(getResources().getDrawable(imgs[position]), null, null, null); 
tv.setText(values.get(position)); 
      } 

      return convertView; 
     } 
    }); 
+0

андроид не может resolve: context и setCompoundDrawables –

+0

Контекст - это какой бы то ни было ваш контекст ... если вы находитесь внутри действия, которое вам не нужно делать, если вы используете фрагмент, используйте getActivity() и т. д. ... Для setCompoundDrawables вам нужно отдать его (TextView) ... Я отредактировал мой ответ с кодом. –

+0

Извините, я недавно на андроиде, и я показал всю активность в моем вопросе, и это макет –

Смежные вопросы