2013-12-13 6 views
0

필터 검색 기능이있는 Android 목록보기가 있지만 각 항목의 목록보기에 이미지를 추가하는 방법을 모르겠습니다. 다음 코드를 시도했지만 제대로 작동하지 않았습니다. 목록보기에 항목이있는 이미지가 프로그램에 표시되지 않습니다. 어떻게해야합니까?ListView에 이미지를 추가하는 방법은 무엇입니까?

import android.os.Bundle; 
import android.app.ListActivity; 
import android.content.Intent; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.view.Menu; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.ListView; 
import android.widget.Toast; 

public class MainActivity extends ListActivity { 
    String[] str = {"One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten"};  
    ArrayAdapter<String> adapter; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, str); 
     setListAdapter(adapter); 

     //test image 
     //ImageView img = (ImageView) findViewById(R.id.imageView1); 
     //str [2] = str[2]+img; 

     //Search In ListView 
     EditText ed = (EditText) findViewById(R.id.editText1); 
     ListView lv = (ListView) findViewById(android.R.id.list); 
     lv.setTextFilterEnabled(true); 

     ed.addTextChangedListener(new TextWatcher() { 

      @Override 
      public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { 
       // TODO Auto-generated method stub 
      } 

      @Override 
      public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
        int arg3) { 
       // TODO Auto-generated method stub 
      } 

      @Override 
      public void afterTextChanged(Editable arg0) { 
       // TODO Auto-generated method stub 
       MainActivity.this.adapter.getFilter().filter(arg0); 
      } 
     });   
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView myImageView = new ImageView(); 

      switch(position) { 
       case 0: myImageView.setImageResource(R.drawable.bp); 
       break; 

       case 1: myImageView.setImageResource(R.drawable.bp); 
       break; 

       case 2: myImageView.setImageResource(R.drawable.bp); 
       break; 
      } 

      return myImageView; 
     } 

    //Click Listener 
    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id){ 
     super.onListItemClick(l, v, position, id); 

     Toast.makeText(this, adapter.getItem(position) +" Your Selected ", 
       Toast.LENGTH_SHORT).show(); 

     if (adapter.getItem(position).equals("One")) { 
      startActivity(new Intent(MainActivity.this, One.class)); 
     } else if (adapter.getItem(position).equals("Two")) { 
      startActivity(new Intent(MainActivity.this, Two.class)); 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
} 

답변

0

난 내 listView에 대한 사용자 지정 어댑터를 만들 것입니다. 이 adater의 레이아웃을 작성해 거기에 imageView를 추가합니다.

0

부모보기가없는 이미지 뷰를 반환하는 경우 getview에서 의도를 사용해야합니다.

관련 문제