2014-09-20 41 views
0

我有一個示例代碼,我爲我的自定義導航抽屜。我不知道如何將圖標添加到列表視圖中的每個項目位置。該位置表示一個意圖,以便將當前頁面鏈接到另一個頁面。我還將字符串項目放入名爲data的數組中,以便我可以通過適配器添加它。 listview是navList請幫忙!如何通過適配器在Listview中添加圖標圖像?

public class HomePatient extends Activity { 
final String[] data ={"Home","Health Progress","Diet","Workout","Medications","Help","Settings","Logout"}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.homepatient); 

final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout); 
    final ListView navList = (ListView) findViewById(R.id.left_drawer); 


ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data); 
    navList.setAdapter(adapter); 
    ArrayAdapter<String> adaptertext = new ArrayAdapter<String>(HomePatient.this, R.layout.textholder, data); 
    navList.setAdapter(adaptertext); 

     navList.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
       String text = data[position]; 
       if(position==1) 
       { 
        Intent i = new Intent(HomePatient.this, HealthProgress.class); 
        i.putExtra("TEXT", text); 
        startActivity(i); 
        //onDestroy(); 
        finish(); 
       } 
       if(position==2) 
       { 
        Intent i = new Intent(HomePatient.this, DietPatient.class); 
        i.putExtra("TEXT", text); 
        startActivity(i); 
        //onDestroy(); 
        finish(); 
       } 
       if(position==3) 
       { 
        //Intent i = new Intent(HomePatient.this, WorkoutPatient.class); 
        //i.putExtra("TEXT", text); 
        // startActivity(i); 
        //onDestroy(); 
        //finish(); 
       } 
       if(position==4) 
       { 
        Intent i = new Intent(HomePatient.this, TreatmentPatient.class); 
        i.putExtra("TEXT", text); 
        startActivity(i); 
        // onDestroy(); 
        finish(); 
       } 
       if(position==7) 
       { 
        Intent i = new Intent(HomePatient.this, PatientLogin.class); 
        i.putExtra("TEXT", text); 
        startActivity(i); 
        //onDestroy(); 
        finish(); 
       } 

      } 
}); 
+0

您使用自定義列表視圖?如果沒有你可以實現它與自定義列表檢查[this](http://www.androidhive.info/2014/07/android-custom-listview-with-image-and-text-using-volley/) – 2014-09-20 04:27:01

回答

1
/* here is my activity*/ 

public class abc extends Activity{ 

    public String[] items{ 
    "A","B" 
    }; 

public void oncreate(***) 
{ 
    ......... 
    ....... 
    Listview lv =(Listview)findviewbyid(R.id.listview); // reference to list view 

    Myadapter myadapter = new  Myadapter(this,android.r.layout.simple_list_item_1,android.r.id.text,items); 

lv.setadapter(myadapter); // i am setting my list view to this adapter 
} 


} 


// here goes my adapter class 



public class Myadapter extends Arrayadapter<String> 

{ 
    Context context; 
    String[] objs; 

    public Myadapter(context context , resouce , txtresid , String[] objs) 
{ 
    super(context , resouce , txtresid , objs); 
    this.context = context; 
    this.objs= objs; 
} 
@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // now i will inflate my xml by returning view 
     // create an xml file that contais imageview and text or whatever you want 
     // i have named my xml file as simple_list.xml 
      Layoutinflater inflater = (Layoutinflater)    context.getsystemservice(context.LAYOUT_INFLATER_SERVICE); 

    View view = inflater.inflater(R.layout.simple_list.xml,parent,false);//check out layout inflater class and its method 
     Imageview iv = (Imageview)view.findviewbyid(R.id.imgview); 
     Textview tv = (TextView) view.findviewbyid(R.id.txtview); 


     tv.setText(objs[position]); 

     if(objs[position].equals("A")) 
     { 
     iv.setimageresource(R.drawable.someimage); 
     } 
     else if(objs[position].equals("B")) 
     { 
     iv.setimageresource(R.drwable.nextimage); 
     }  


     return view; 
    } 






} 
2

使用帶有BaseAdapter的自定義Listview。 這裏是link.

相關問題