【问题标题】:Using listview in android在android中使用listview
【发布时间】:2012-03-03 00:35:39
【问题描述】:

我正在制作一个需要使用ListView 的android 应用程序。我想添加一个显示“添加到列表”的菜单按钮,一旦用户按下该菜单按钮,它就会弹出一个弹出窗口,其中包含一个TextViewEditText 和两个Buttons、“确定”和“取消”。一旦用户按下“确定”,EditText 内的文本应添加到ListView。而取消Button 是显而易见的。我还希望能够长按ListView 项目以打开包含删除Button 的弹出窗口。我想使用 XML 设计ListView 屏幕。我怎样才能做到这一点???请帮助我,并提前非常感谢!到目前为止,我正在使用此代码:

ListView 活动:

public class NotesActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

主屏幕 XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
android:orientation="vertical" >








<ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

</ListView>

</LinearLayout>

【问题讨论】:

  • 当您使用 ListActivity 时,您不需要包含 Listview View 的 xml。

标签: android listview screen add


【解决方案1】:

MainActivity.java

      com.jtech.listviewapp;
      import androidx.appcompat.app.AppCompatActivity;

      import android.os.Bundle;
      import android.widget.ArrayAdapter;
      import android.widget.ListView;

      public class MainActivity extends AppCompatActivity {
        ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = (ListView) findViewById(R.id.lv);
        String days[] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
        ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,days);
        listView.setAdapter(arrayAdapter);
    }
}

【讨论】:

    【解决方案2】:

    对于listview用这种方式试试

    1 主布局

    <ListView
    android:id="@+id/listviews"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"></ListView>
    

    2 列表项布局

    <TextView
    android:id="@+id/tviname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
    
    <TextView
    android:id="@+id/tvinum"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
    

    3 主活动

    ListView listviews;
    ArrayList<String> listname=new ArrayList<>();
    ArrayList<String> listnum=new ArrayList<>();
    
    listviews=(ListView)findViewById(R.id.listviews);
    
        listname.add("amit");
        listnum.add("12334444444");
    
        listname.add("amit");
        listnum.add("12334444444");
    
        listviews.setAdapter(new Myadapter(MainActivity.this,listname,listnum));
    

    4 适配器类

    public class Myadapter implements ListAdapter {
    
        Activity activity;
        ArrayList<String> listname, listnum;
        int size;
    
        public Myadapter(Activity activity, ArrayList<String> 
         listname,ArrayList<String> listnum) {
            this.listname = listname;
            this.listnum = listnum;
            size = listname.size();
            this.activity = activity;
        }
    
        @Override
        public View getView(int position, View view, ViewGroup viewGroup) {
            LayoutInflater inflater = (LayoutInflater) activity
                    .getSystemService(activity.LAYOUT_INFLATER_SERVICE);
    
            View v = inflater.inflate(R.layout.mylayout, null);
            TextView tviname = (TextView) v.findViewById(R.id.tviname);
            TextView tvinum = (TextView) v.findViewById(R.id.tvinum);
    
    
            tviname.setText(listname.get(position));
            tvinum.setText(listnum.get(position));
            return v;
        }
    
        @Override
        public void registerDataSetObserver(DataSetObserver observer) {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void unregisterDataSetObserver(DataSetObserver observer) {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return size;
        }
    
        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }
    
        @Override
        public boolean hasStableIds() {
            // TODO Auto-generated method stub
            return false;
        }
    
    
        @Override
        public int getItemViewType(int position) {
            // TODO Auto-generated method stub
            return 0;
        }
    
        @Override
        public int getViewTypeCount() {
            // TODO Auto-generated method stub
            return size;
        }
    
        @Override
        public boolean isEmpty() {
            // TODO Auto-generated method stub
            return false;
        }
    
        @Override
        public boolean areAllItemsEnabled() {
            // TODO Auto-generated method stub
            return false;
        }
    
        @Override
        public boolean isEnabled(int position) {
            // TODO Auto-generated method stub
            return false;
    
        }
       }
    

    【讨论】:

      【解决方案3】:

      适配器:

      import java.util.ArrayList;
      
      import android.app.Activity;
      import android.content.Context;
      import android.view.LayoutInflater;
      import android.view.View;
      import android.view.ViewGroup;
      import android.widget.BaseAdapter;
      import android.widget.ImageView;
      import android.widget.TextView;
      
      import com.example.beans.SongInfo;
      
      public class LazyAdapter extends BaseAdapter {
      
          private Activity activity;
          private ArrayList<SongInfo> data1;
          private static LayoutInflater inflater=null;
          //public ImageLoader imageLoader; 
      
          public LazyAdapter(Activity a, ArrayList<SongInfo> d) {
              activity = a;
              data1=d;
              inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            //  imageLoader=new ImageLoader(activity.getApplicationContext());
          }
      
          public int getCount() {
              return data1.size();
          }
      
          public Object getItem(int position) {
              return position;
          }
      
          public long getItemId(int position) {
              return position;
          }
      
          public View getView(int position, View convertView, ViewGroup parent) {
              View vi=convertView;
              if(convertView==null)
                  vi = inflater.inflate(R.layout.list_row, null);
      
              TextView title = (TextView)vi.findViewById(R.id.title); // title
              TextView artist = (TextView)vi.findViewById(R.id.artist); // artist name
              TextView duration = (TextView)vi.findViewById(R.id.duration); // duration
              ImageView thumb_image=(ImageView)vi.findViewById(R.id.list_image); // thumb image
      
              SongInfo song=data1.get(position);
      
              // Setting all values in listview
              title.setText(song.getTitle());
              artist.setText(song.getArtist());
              duration.setText(song.getDuration());
              if(song.getArtist().equalsIgnoreCase("Adele")){
                  thumb_image.setImageResource(R.drawable.rihanna);
      
              }else if(song.getArtist().equalsIgnoreCase("Rihanna")){
                  thumb_image.setImageResource(R.drawable.rihanna);
              }else if(song.getArtist().equalsIgnoreCase("Eminem")){
                  thumb_image.setImageResource(R.drawable.rihanna);
              }else if(song.getArtist().equalsIgnoreCase("Michael Jackson")){
                  thumb_image.setImageResource(R.drawable.rihanna);
              }
      
      
      //        imageLoader.DisplayImage(song.get(CustomizedListView.KEY_THUMB_URL), thumb_image);
              return vi;
          }
      }
      

      【讨论】:

        【解决方案4】:

        示例列表视图:

        import java.io.FileOutputStream;
        import java.io.IOException;
        import java.util.ArrayList;
        import java.util.HashMap;
        import java.util.List;
        
        import org.apache.http.HttpResponse;
        import org.apache.http.client.ClientProtocolException;
        import org.apache.http.client.HttpClient;
        import org.apache.http.client.methods.HttpGet;
        import org.apache.http.impl.client.DefaultHttpClient;
        import org.apache.http.util.EntityUtils;
        
        import com.example.beans.SongInfo;
        
        
        
        import android.app.Activity;
        import android.app.AlertDialog;
        import android.content.Context;
        import android.os.AsyncTask;
        import android.os.Bundle;
        import android.view.Menu;
        import android.view.View;
        import android.widget.AdapterView;
        import android.widget.ListView;
        import android.widget.TextView;
        import android.widget.AdapterView.OnItemClickListener;
        
        public class BuddiesActivity extends Activity {
        
            int statusClass = 2;
            String taskResult="test";
            ListView list;
            LazyAdapter adapter;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                new HttpAsyncTask().execute("http://en.wikipedia.org/w/api.php?format=json&action=query&titles=Main%20Page&prop=revisions&rvprop=content");
        
                do {
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                } while (statusClass == 2);                 
        
        
                setContentView(R.layout.activity_buddies);
        //      TextView textview=(TextView)findViewById(R.id.buddies);
        //      textview.setText(taskResult);
        
        ArrayList<SongInfo> songsList1 = new ArrayList<SongInfo>();
        
                System.out.println("Emply ArrayList Created");
        
                songsList1=getListData();
        
                System.out.println("Data added to arrayList :"+songsList1.size()+" Data is: "+songsList1);
        
                list=(ListView)findViewById(R.id.list);
        
                System.out.println("ListView Got");
                // Getting adapter by passing xml data ArrayList
                adapter=new LazyAdapter(this, songsList1);
        
                System.out.println("Object Of Lazy Adapter created");
                list.setAdapter(adapter);
        
                System.out.println("adapter set..");
        
        
                // Click event for single list row
                /*list.setOnItemClickListener(new OnItemClickListener() {
        
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view,
                            int position, long id) {
                        initiatePopupWindow();
        
                    }
                });*/
        
        
        
        
            }
        
            public ArrayList<SongInfo> getListData(){
                ArrayList<SongInfo> list=new ArrayList<SongInfo>();
        
        
        
        
                list.add(new SongInfo("Song", "1", "Someone Like You", "Adele", "4:47", "http://api.androidhive.info/music/images/adele.png"));
                list.add(new SongInfo("Song", "2", "Space Bound", "Eminem", "4:34", "http://api.androidhive.info/music/images/adele.png"));
                list.add(new SongInfo("Song", "3", "Stranger In Moscow", "Michael Jackson", "5:55", "http://api.androidhive.info/music/images/adele.png"));
                list.add(new SongInfo("Song", "4", "Love The Way You Lie", "Rihanna", "4:23", "http://api.androidhive.info/music/images/adele.png"));
        
                list.add(new SongInfo("Song", "5", "Someone Like You", "Adele", "4:47", "http://api.androidhive.info/music/images/adele.png"));
                list.add(new SongInfo("Song", "6", "Space Bound", "Eminem", "4:34", "http://api.androidhive.info/music/images/adele.png"));
                list.add(new SongInfo("Song", "7", "Stranger In Moscow", "Michael Jackson", "5:55", "http://api.androidhive.info/music/images/adele.png"));
                list.add(new SongInfo("Song", "8", "Love The Way You Lie", "Rihanna", "4:23", "http://api.androidhive.info/music/images/adele.png"));
        
                list.add(new SongInfo("Song", "9", "Someone Like You", "Adele", "4:47", "http://api.androidhive.info/music/images/adele.png"));
                list.add(new SongInfo("Song", "10", "Space Bound", "Eminem", "4:34", "http://api.androidhive.info/music/images/adele.png"));
                list.add(new SongInfo("Song", "11", "Stranger In Moscow", "Michael Jackson", "5:55", "http://api.androidhive.info/music/images/adele.png"));
                list.add(new SongInfo("Song", "12", "Love The Way You Lie", "Rihanna", "4:23", "http://api.androidhive.info/music/images/adele.png"));
        
        
                return list;
        
        
            }
        
            @Override
            public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.buddies, menu);
                return true;
            }
        
        
            private class HttpAsyncTask extends AsyncTask<String, Void, String> {
                AlertDialog.Builder builder;
        
            protected void onPreExecute() {
                super.onPreExecute();
                builder = new AlertDialog.Builder(BuddiesActivity.this);
            }
        
            @Override
            protected String doInBackground(String... urls) {
                    return POST(urls[0]);
            }
        
            @Override
            protected void onPostExecute(String result) {
            }
        }
        
        
        
        
        
            public String POST(String url) {
                System.out.println("I am in post data./..............................");
                HttpClient httpclient = new DefaultHttpClient();
                HttpGet httppost = new HttpGet(url);
                String result = null;
                try {
                    HttpResponse response = httpclient.execute(httppost);
                    int status = response.getStatusLine().getStatusCode();
                    System.out.println("Status is : " + status);
        //          ParseProductJson parseJson = new ParseProductJson();
                    if (status == 200) {
                        result = EntityUtils.toString(response.getEntity());
                        System.out.println("################result1###############################"+ result);
                        /*FileOutputStream fos = openFileOutput("productsJson.json",
                                Context.MODE_PRIVATE);
                        fos.write(result.getBytes());
                        fos.close();*/
        
                        System.out.println("Done");
                        taskResult=result;
        
                        statusClass = status;
                    } else {
                        statusClass = 400;
                        result = "Did not work!";
                    }
                } catch (ClientProtocolException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return result;
            }
        
        
        
        
        
        
        }
        

        【讨论】:

          【解决方案5】:
              //Adapter    
              package com.example.androidlistview;
          
                  import java.util.ArrayList;
          
                  import android.app.Activity;
                  import android.content.Context;
                  import android.os.AsyncTask;
                  import android.util.Log;
                  import android.view.LayoutInflater;
                  import android.view.View;
                  import android.view.ViewGroup;
                  import android.widget.BaseAdapter;
                  import android.widget.ImageView;
                  import android.widget.ProgressBar;
                  import android.widget.TextView;
          
                  import com.squareup.picasso.Picasso;
          
                  public class CustomAdapter extends BaseAdapter{
                      ProgressBar pro;
                      private Activity activity;
                      private ArrayList<ListGetterSetter> Arr_List;
          
                      private LayoutInflater inflate;
          
                      public  CustomAdapter(Activity a,ArrayList<ListGetterSetter> arr)
                      {
                          activity = a;
                          Arr_List = arr;
                          inflate = (LayoutInflater)a.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                      }
          
                      @Override
                      public int getCount() {
                          // TODO Auto-generated method stub
          
                          return Arr_List.size();
                      }
          
                      @Override
                      public Object getItem(int position) {
                          // TODO Auto-generated method stub
                          return Arr_List.get(position);
                      }
          
                      @Override
                      public long getItemId(int position) {
                          // TODO Auto-generated method stub
                          return 0;
                      }
          
                      @Override
                      public View getView(int position, View convertView, ViewGroup parent) {
                          // TODO Auto-generated method stub
                          ViewHolder holder = null;
                          String url = null;
                          Log.i("getView","called");
          
                          if(convertView==null){
                              holder = new ViewHolder();
          
                               url ="ImagePath";
          
                              convertView = inflate.inflate(R.layout.tbrow, null);
                              holder.txtname = (TextView)convertView.findViewById(R.id.txt_name);
                              holder.txtdist = (TextView)convertView.findViewById(R.id.txt_dist);
                              holder.txtaddress = (TextView)convertView.findViewById(R.id.iRestaddress);
                              holder.image = (ImageView)convertView.findViewById(R.id.img_listimage);
                              holder.txtname.setText(Arr_List.get(position).getName());
                              holder.txtdist.setText(Arr_List.get(position).getD_dist());
                              holder.txtaddress.setText(Arr_List.get(position).getvAddress2());
                              Log.i("URLLRLRLRRL",""+url);
                              Picasso.with(activity).load(url).placeholder(R.drawable.listimg).noFade().into(holder.image);
                              convertView.setTag(holder);
          
                          }
                          else
                          {
                              holder = (ViewHolder) convertView.getTag();
                          }
          
          
                          return convertView;
                      }
                      public static class ViewHolder {
                          public TextView txtname,txtaddress,txtdist;
                          public ImageView image;
          
                      }
          
          
                  }
          
              //Call Main Activity
              package com.example.androidlistview;
          
              import java.io.BufferedReader;
              import java.io.IOException;
              import java.io.InputStreamReader;
              import java.net.HttpURLConnection;
              import java.net.MalformedURLException;
              import java.net.URL;
              import java.util.ArrayList;
          
              import org.json.JSONArray;
              import org.json.JSONException;
              import org.json.JSONObject;
          
              import android.app.Activity;
              import android.app.ProgressDialog;
              import android.os.AsyncTask;
              import android.os.Bundle;
              import android.os.Parcelable;
              import android.util.Log;
              import android.view.View;
              import android.widget.AbsListView;
              import android.widget.AbsListView.OnScrollListener;
              import android.widget.LinearLayout;
              import android.widget.ListView;
          
              public class MainActivity extends Activity implements OnScrollListener{
              int currentFirstVisibleItem,currentVisibleItemCount,currentScrollState,total;
              int selection=0;
                  ProgressDialog pd_load;
                  ListView lst_list;
                  String MSG;
                  LinearLayout ll;
                  ArrayList<ListGetterSetter> ListArray;
                  @Override
                  protected void onCreate(Bundle savedInstanceState) {
                      super.onCreate(savedInstanceState);
                      setContentView(R.layout.activity_main);
                      ListArray = new ArrayList<ListGetterSetter>();
                      new GetList().execute();
                      lst_list = (ListView)findViewById(R.id.lst_list);
                      lst_list.setOnScrollListener(this);
                  }
          
                  public class GetList extends AsyncTask<Void, Void, Void>
                  {
          
                      @Override
                      protected void onPreExecute() {
                          // TODO Auto-generated method stub
                          super.onPreExecute();
              //          pd_load = new ProgressDialog(MainActivity.this);
              //          pd_load.setMessage("Loading...");
              //          pd_load.show();
          
                          ll = (LinearLayout)findViewById(R.id.ll_load);
                          ll.setVisibility(View.VISIBLE);
          
                      }
          
                      @Override
                      protected Void doInBackground(Void... params) {
                          // TODO Auto-generated method stub
                          getdata();
                          return null;
                      }
          
                      @Override
                      protected void onPostExecute(Void result) {
                          // TODO Auto-generated method stub
              //          if(pd_load.isShowing())
              //          {
              //              pd_load.dismiss();
              //          }
          
                          ll.setVisibility(View.GONE);
          
                          CustomAdapter cst = new CustomAdapter(MainActivity.this, ListArray);
                          lst_list.setAdapter(cst);
                          lst_list.setSelection(selection);
                          super.onPostExecute(result);
                      }
          
          
                      public void getdata()
                      {
                          try
                          {
                              URL url = new URL("url");
                              HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                                      connection.connect();
                                      int code = connection.getResponseCode();
                                      if (code != 200) {
                                      MSG = "Internet connection not available";
                                      //setContentView(R.layout.webimg);
                                      } else {
                                      BufferedReader dis = new BufferedReader(
                                      new InputStreamReader(connection.getInputStream()));
          
                                      String myString, Result = dis.readLine();
          
                                      while ((myString = dis.readLine()) != null) {
                                      Result += myString;
                                      }
          
          
                                      JSONObject jsonObject = new JSONObject(Result);
          
                                      JSONArray jsarr = jsonObject.getJSONArray("posts");
          
                                      int arraysize = jsarr.length();
          
          
          
                                      for(int i=0;i<arraysize;i++)
                                      {
                                          ListGetterSetter ls = new ListGetterSetter();
                                          JSONObject jsobj = jsarr.getJSONObject(i);
                                          ls.setName(jsobj.getJSONObject("post").getString("vName"));
                                          ls.setvAddress1(jsobj.getJSONObject("post").getString("vAddress1"));
                                          ls.setD_dist(jsobj.getJSONObject("post").getString("d_dist"));
                                          ls.setvAddress2(jsobj.getJSONObject("post").getString("vAddress2"));
                                          ls.setImagepath(jsobj.getJSONObject("post").getString("vImage"));
          
                                          ListArray.add(ls);
                                      }
          
                                      }
          
                                      } catch (MalformedURLException e1) {
                                      // TODO Auto-generated catch block
                                      MSG = "MalformedURLException";
                                      } catch (IOException e) {
                                      // TODO Auto-generated catch block
                                      MSG = "IOException";
                                      } catch (JSONException e) {
                                          // TODO Auto-generated catch block
                                          e.printStackTrace();
                                      }
          
          
          
          
          
                      }
          
                  }
          
                  @Override
                  public void onScroll(AbsListView view, int firstVisibleItem,
                          int visibleItemCount, int totalItemCount) {
                      Log.i("Scroll End","Call1222");
                      this.currentFirstVisibleItem = firstVisibleItem;
                      this.currentVisibleItemCount = visibleItemCount;
                      this.total = totalItemCount;
                      // TODO Auto-generated method stub
                      Log.i("Scroll End","Call1"+currentVisibleItemCount);
          
                  }
          
                  @Override
                  public void onScrollStateChanged(AbsListView view, int scrollState) {
                      // TODO Auto-generated method stub
                       this.currentScrollState = scrollState;
                       Log.i("Scroll End","Call2");
                          this.isScrollCompleted();
                  }
          
                  public void isScrollCompleted()
                  {
          
                      final int lastItem = currentFirstVisibleItem + currentVisibleItemCount;
                      if(lastItem == total) {
                          // Last item is fully visible.
                          selection=total;
          
          
                          new GetList().execute();
          
          
                      }
                      if (this.currentVisibleItemCount ==ListArray.size() && this.currentScrollState == SCROLL_STATE_IDLE) {
                          /*** In this way I detect if there's been a scroll which has completed ***/
                          /*** do the work for load more date! ***/
                          Log.i("Scroll End","Call");
          
          
                      }
                  }
              }
          
          
          
          //List Row
          <?xml version="1.0" encoding="utf-8"?>
          <TableRow xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/tr_main"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content" >
          
              <RelativeLayout
                  android:layout_width="wrap_content"
                  android:layout_height="115dp"
                  android:layout_weight="1"
                  android:background="@drawable/listingbg"
                  android:orientation="horizontal"
                  android:paddingBottom="5dp"
                  android:paddingLeft="5dp"
                  android:paddingRight="5dp"
                  android:paddingTop="5dp" >
          
                  <FrameLayout
                      android:id="@+id/img_image"
                      android:layout_width="80dp"
                      android:layout_height="80dp"
                      android:layout_alignParentLeft="true"
                      android:layout_alignParentTop="true"
                      android:layout_marginLeft="5dp"
                      android:layout_marginTop="5dp"
                       >
          
                      <ImageView android:layout_width="fill_parent"
                          android:layout_height="fill_parent"
                          android:id="@+id/img_listimage"
                          android:src="@drawable/listimg"/>
          
                      <ProgressBar
                          android:id="@+id/progressBar1"
                          style="?android:attr/progressBarStyleLarge"
                          android:layout_width="wrap_content"
                          android:layout_height="wrap_content" 
                          android:visibility="gone"/>
          
                       </FrameLayout>
          
                  <LinearLayout
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:layout_alignParentLeft="true"
                      android:layout_below="@+id/img_image"
                      android:layout_marginLeft="8dp"
                      android:layout_toLeftOf="@+id/relativeLayout1"
                      android:gravity="center_vertical|center_horizontal"
                      android:minWidth="100dp" >
          
                      <TextView
                          android:id="@+id/txt_dist"
                          android:layout_width="wrap_content"
                          android:layout_height="fill_parent"
                          android:text="5 km"
                          android:textColor="#000000"
                          android:textSize="14sp"
                          android:textStyle="bold" />
                  </LinearLayout>
          
                  <RelativeLayout
                      android:id="@+id/relativeLayout1"
                      android:layout_width="fill_parent"
                      android:layout_height="wrap_content"
                      android:layout_marginRight="30dp"
                      android:layout_toRightOf="@+id/img_image"
                      android:paddingLeft="5dp" >
          
                      <TextView
                          android:id="@+id/txt_name"
                          android:layout_width="fill_parent"
                          android:layout_height="wrap_content"
                          android:layout_marginLeft="5dp"
                          android:layout_marginTop="5dp"
                          android:layout_toLeftOf="@+id/iv_fav_tbrow"
                          android:ellipsize="end"
                          android:gravity="left"
                          android:singleLine="true"
                          android:text="Restaurant namefbfbfbfbfdbfbfb"
                          android:textColor="#2e1317"
                          android:textSize="19dp"
                          android:textStyle="bold" />
          
                      <TextView
                          android:id="@+id/iRestaddress"
                          android:layout_width="fill_parent"
                          android:layout_height="wrap_content"
                          android:layout_below="@+id/txt_name"
                          android:layout_marginLeft="5dp"
                          android:ellipsize="end"
                          android:lines="2"
                          android:maxEms="5"
                          android:maxWidth="170dp"
                          android:text="202, asharam road. Ahmedabad - 3000001"
                          android:textColor="#2e1317"
                          android:textSize="14dp" />
          
                      <LinearLayout
                          android:layout_width="wrap_content"
                          android:layout_height="wrap_content"
                          android:layout_below="@+id/iRestaddress"
                          android:layout_marginLeft="7dp"
                          android:layout_marginTop="5dp"
                          android:paddingBottom="1dp" >
          
                          <ImageView
                              android:id="@+id/iv_rating1"
                              android:layout_width="25dp"
                              android:layout_height="25dp"
                              android:src="@drawable/rat_star_off" />
          
                          <LinearLayout
                              android:layout_width="6dp"
                              android:layout_height="wrap_content" >
                          </LinearLayout>
          
                          <ImageView
                              android:id="@+id/iv_rating2"
                              android:layout_width="25dp"
                              android:layout_height="25dp"
                              android:src="@drawable/rat_star_off" />
          
                          <LinearLayout
                              android:layout_width="6dp"
                              android:layout_height="wrap_content" >
                          </LinearLayout>
          
                          <ImageView
                              android:id="@+id/iv_rating3"
                              android:layout_width="25dp"
                              android:layout_height="25dp"
                              android:src="@drawable/rat_star_off" />
          
                          <LinearLayout
                              android:layout_width="6dp"
                              android:layout_height="wrap_content" >
                          </LinearLayout>
          
                          <ImageView
                              android:id="@+id/iv_rating4"
                              android:layout_width="25dp"
                              android:layout_height="25dp"
                              android:src="@drawable/rat_star_off" />
          
                          <LinearLayout
                              android:layout_width="6dp"
                              android:layout_height="wrap_content" >
                          </LinearLayout>
          
                          <ImageView
                              android:id="@+id/iv_rating5"
                              android:layout_width="25dp"
                              android:layout_height="25dp"
                              android:src="@drawable/rat_star_off" />
          
                          <LinearLayout
                              android:layout_width="6dp"
                              android:layout_height="wrap_content" >
                          </LinearLayout>
                      </LinearLayout>
          
                      <ImageView
                          android:id="@+id/iv_fav_tbrow"
                          android:layout_width="25dp"
                          android:layout_height="25dp"
                          android:layout_above="@+id/iRestaddress"
                          android:layout_alignParentRight="true"
                          android:layout_marginRight="5dp"
                          android:background="@drawable/ic_favorite"
                          android:visibility="gone" />
                  </RelativeLayout>
              </RelativeLayout>
          
          </TableRow>
          
          
          
          //main.xml
          
          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="vertical"
              tools:context=".MainActivity" >
          
              <LinearLayout
                  android:layout_width="fill_parent"
                  android:layout_height="328dp"
                  android:layout_weight="0.79"
                  android:orientation="vertical" >
          
                  <ListView
                      android:id="@+id/lst_list"
                      android:layout_width="fill_parent"
                      android:layout_height="fill_parent" >
                  </ListView>
              </LinearLayout>
          
              <LinearLayout
                  android:id="@+id/ll_load"
                  android:layout_width="fill_parent"
                  android:layout_height="50dp"
                  android:layout_alignParentBottom="true"
                  android:gravity="center"
                  android:orientation="horizontal"
                  android:visibility="gone" 
                  android:background="@drawable/listingbg"
                  >
                  <ProgressBar
                      android:id="@+id/progressBar1"
                      style="?android:attr/progressBarStyleLarge"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content" />
          
                  <TextView
                      android:id="@+id/textView1"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:text="Loading..."
                      android:textSize="16dp" 
                      android:textColor="@android:color/white"
                      android:textStyle="bold"/>
              </LinearLayout>
          
          </LinearLayout>
          

          【讨论】:

            【解决方案6】:

            更多详情:- http://www.listviewinandroid.blogspot.in/

               public class SimpleListViewActivity extends Activity {
            
              private ListView mainListView ;
            
            
              private ArrayAdapter<String> listAdapter ;
            
              public void onCreate(Bundle savedInstanceState) {
            
            super.onCreate(savedInstanceState);
            
            setContentView(R.layout.main);
            
            // Find the ListView resource. 
            mainListView = (ListView) findViewById( R.id.mainListView );
            
            //
            
            
            // Create and populate a List of planet names.
            String[] planets = new String[] { "Mercury", "Venus", "Earth", "Mars",
                                              "Jupiter", "Saturn", "Uranus", "Neptune"};  
            
            
            
            
            ArrayList<String> planetList = new ArrayList<String>();
            planetList.addAll( Arrays.asList(planets) );
            
            
            
            
            // Create ArrayAdapter using the planet list.
            listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, planetList);
            
            
            
            
            // Add more planets. If you passed a String[] instead of a List<String> 
            // into the ArrayAdapter constructor, you must not add more items. 
            // Otherwise an exception will occur.
            listAdapter.add( "Ceres" );
            listAdapter.add( "Pluto" );
            listAdapter.add( "Haumea" );
            listAdapter.add( "Makemake" );
            listAdapter.add( "Eris" );
            
               // Set the ArrayAdapter as the ListView's adapter.
            mainListView.setAdapter( listAdapter ); 
            
            
            mainListView.setOnItemClickListener(new OnItemClickListener() {
            
                public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
                        long arg3) {
            
                    //Log.i("m", "-"+pos);
            
            
                Intent myIntent = new Intent(SimpleListViewActivity.this, MainActivity.class);
                myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                myIntent.putExtra("pos", pos);
                startActivity(myIntent);
            
                }
            
            });
            
            
              }
            }
            

            MainActivity.java

                package com.windrealm.android;
                import android.app.Activity;
                import android.os.Bundle;   
                import android.util.Log;
                import android.widget.TextView;
            
            
            
            public class MainActivity extends Activity {
            //TextView tv;
            
            /** Called when the activity is first created. */
              @Override
              public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.mainactivity);
             TextView   tv = (TextView) findViewById(R.id.textView1);
               Bundle b = getIntent().getExtras();
               int pos = b.getInt("pos"); 
                Log.i("pos=", "-"+pos);
                 if(pos==0)
            
             {
            
                  tv.setText("MERCURY \n Aphelion \n69,816,900 km\n0.466 697 AU\nPerihelion\n 46,001,200 km\n");
            
            
            
            
             }
             if(pos==2)
            {
              tv.setText("earth");
            }
            
              }
            
              }
            

            【讨论】:

              【解决方案7】:
              1. 您必须创建一个包含 listView 的布局。

              2. 您必须创建一个与列表视图的一行相对应的 xml lyout。

              3. 您必须创建一个适配器来填充数据以插入到您的 listView 中

              4. 您必须在按钮上创建一个 onClickListener 才能在列表中添加数据

              5. 如果您使用的是 ArrayAdapter 或 CursorAdapter,请添加新的 您创建的项目到您的适配器使用的列表或光标和 (notifyDataSetChanged() 会自动调用),因此您的适配器将更新 列表视图

              来源: http://developer.android.com/resources/tutorials/views/hello-listview.html

              上一个话题:Dynamic ListView in Android app

              【讨论】:

                猜你喜欢
                • 2014-12-05
                • 1970-01-01
                • 1970-01-01
                • 2013-08-07
                • 2015-04-11
                • 2012-02-17
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多