2015-11-03 68 views
1

我想顯示juice對象的列表。但是這裏僅獲取一個對象並僅顯示一個object.getcount()打5次,但不是顯示,請幫助我。 我想顯示juice對象的列表。但是這裏只有一個對象,並且只顯示一個object.getcount()正在調用5次。但它不是顯示。請幫助我。我想顯示juice對象的列表。但是這裏僅獲取一個對象並只顯示一個對象

  //FoodHome.java 
     package com.example.hotelmenucard; 

     import android.app.Activity; 
     import android.content.Intent; 
     import android.os.Bundle; 
     import android.view.View; 
     import android.widget.AdapterView; 
     import android.widget.ArrayAdapter; 
     import android.widget.ListView; 

     public class FoodHome extends Activity { 


      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_food_home); 
      populateListView(); 
      registerClickCallBack(); 
     } 


     private void populateListView() { 

      String[] items={"All Day BreakFast","Salads","Sandwiches","Hot Drinks","Juices"}; 


      ArrayAdapter<String> adapter=new ArrayAdapter<String>(
        this,       //Context for the activity 
        R.layout.text_view,    //Layout to use(create)  
        items);       //Items to be displayed 


      ListView list=(ListView)findViewById(R.id.listView1); 
      list.setAdapter(adapter); 
     } 
     private void registerClickCallBack() { 
      ListView list=(ListView)findViewById(R.id.listView1); 
      list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

       @Override 
       public void onItemClick(AdapterView<?> parent, View view, 
         int position, long id) { 
        /*TextView textview=(TextView)view; 
        String msg="hai"+textview.getText(); 
        Toast.makeText(FoodHome.this, msg, Toast.LENGTH_LONG).show();*/ 
        Intent i = new Intent(FoodHome.this, ItemList.class); 
        startActivity(i); 

       } 
      }); 



     } 
     } 







     //ItemList.java 
      package com.example.hotelmenucard; 

      import java.util.ArrayList; 
     import java.util.List; 

     import android.app.Activity; 
     import android.os.Bundle; 
     import android.util.Log; 
     import android.view.View; 
     import android.view.ViewGroup; 
     import android.widget.ArrayAdapter; 
     import android.widget.ImageView; 
     import android.widget.ListView; 
     import android.widget.RelativeLayout; 
     import android.widget.TextView; 

     public class ItemList extends Activity { 
     private List<Juice> juices = new ArrayList<Juice>(); 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_item_list); 
      populateJuiceList(); 
      populateJuiceListView(); 
      Log.i(juices.toString(),"list of juice"); 
     } 

     private void populateJuiceList() { 
      juices.add(new Juice("Lemon", 15, "lemon*****", R.drawable.lemon)); 
      juices.add(new Juice("Strawberry", 15, "Strawberry*****", 
        R.drawable.strawberry)); 
      juices.add(new Juice("Watermelon", 15, "Watermelon*****", 
        R.drawable.watermelon)); 
      juices.add(new Juice("Pear", 15, "pear*****", R.drawable.pear)); 
      juices.add(new Juice("Pomegranate", 15, "Pomegranate*****", 
        R.drawable.pomegranate)); 
      System.out.println(juices+"juices in list"); 

     } 

     private void populateJuiceListView() { 
      ArrayAdapter<Juice> adapter = new MyListAdapter(R.layout.activity_item_list); 
      ListView list = (ListView) findViewById(R.id.carsListV); 
      list.setAdapter(adapter); 

     } 

     private class MyListAdapter extends ArrayAdapter<Juice> { 
      public MyListAdapter(int activityItemList) { 
       super(ItemList.this, activityItemList, juices); 
      } 
      public int getCount() { 
       System.out.println(juices.size()+"in getcount"); 
       return juices.size(); 
      } 

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

       RelativeLayout itemView =(RelativeLayout) convertView; 

       if (itemView == null) { 
        itemView = (RelativeLayout)getLayoutInflater().inflate(R.layout.item_list, 
          parent, false); 
       } 
       Juice juice = juices.get(position+1); 
       ImageView imageView = (ImageView)itemView.findViewById(R.id.imageView1); 
       imageView.setImageResource(juice.getId()); 
       TextView txt=(TextView)itemView.findViewById(R.id.textView1); 
       txt.setText(juice.getName()); 
       TextView text1=(TextView)itemView.findViewById(R.id.textView2); 
       text1.setText(juice.getUsing()); 
       itemView.bringToFront(); 
       TextView t=(TextView)itemView.findViewById(R.id.textView3); 
       t.setText(Integer.toString(juice.getRate())); 
       System.out.println(itemView.getVisibility()); 

       return itemView; 

       // return super.getView(position, convertView, parent); 
      } 

     } 

     } 





    //activity_item_list.xml 
     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/bg" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     tools:context="com.example.hotelmenucard.ItemList" > 

     <ListView 
      android:id="@+id/carsListV" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" > 

     </ListView> 

     </RelativeLayout> 











     //item_list.xml (typo mistake changed from item_view.xml) 
     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:background="@drawable/bg" 
     android:gravity="top" 
     android:textColor="#B2F8F8" > 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentStart="true" 
      android:layout_alignParentTop="true" 
      android:src="@drawable/lemon" /> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBottom="@+id/imageView1" 
      android:layout_centerHorizontal="true" 
      android:text="TextView" /> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/textView2" 
      android:layout_alignBottom="@+id/textView2" 
      android:layout_alignParentRight="true" 
      android:text="TextView" /> 

     </RelativeLayout> 
+0

多少次'getView'方法叫什麼? –

+0

'Juice juice = juices.get(position + 1);'這是故意的嗎?它會不會出局? –

+0

5次它調用。但只顯示一個object.here我已經給測試,它只顯示第二個對象 – Ramya

回答

0

代替ArrayAdapter<String> adapter=new ArrayAdapter<String>( this,R.layout.text_view,items);

使用本 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, items);

+0

謝謝大家,我得到了答案。我所做的是,我沒有提到xml(item_list.xml)中正確的寬度和高度,所以它正在全屏顯示單個對象。現在我給出了高度和寬度150dip。它現在工作正常。 – Ramya

相關問題