在android中使用列表视图

发布于 2025-01-04 08:36:09 字数 1187 浏览 4 评论 0原文

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

ListView Activity:

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);
}

Main screen 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>

I am making an android application that needs to use a ListView. I want to add a menubutton that says "Add to list" and once the user presses that menubutton, it pops up a popupwindow containing a TextView, EditText and two Buttons, "Ok" and "Cancel". Once the user presses "Ok", the text inside the EditText should be added to the ListView. And the cancel Button is obvious. I also want to be able to long press on a ListView item to open a popupwindow containing a delete Button. I want to design the ListView screen using XML. How can i make this possible??? Please help me and thanks SO much in advance! I am using this code so far:

ListView activity:

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);
}

Main screen 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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

雄赳赳气昂昂 2025-01-11 08:36:09
  1. 您必须创建一个包含 listView 的布局。

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

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

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

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

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

上一个主题:Dynamic ListView in安卓应用

  1. You have to create a layout containing a listView.

  2. You have to create an xml lyout corresponding to one row of your list view.

  3. You have to create an adapter which will populate data to insert in your listView

  4. You have to create an onClickListener on your button to add data in your list

  5. If you are using an ArrayAdapter or a CursorAdapter, add the new
    item you created to the list or the cursor used by your adapter and
    (notifyDataSetChanged() is automatically called), so your adapter will update the
    listview

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

Previous topic on it : Dynamic ListView in Android app

通知家属抬走 2025-01-11 08:36:09

更多详细信息:- 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");
}

  }

  }

more details:- 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");
}

  }

  }
宁愿没拥抱 2025-01-11 08:36:09

对于listview尝试用这种方式

1 Mainlayout

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

2 listitemlayout

<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 MainActivity

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 AdapterClass

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;

    }
   }

for listview Try with this way

1 Mainlayout

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

2 listitemlayout

<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 MainActivity

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 AdapterClass

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;

    }
   }
夏至、离别 2025-01-11 08:36:09
    //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>
    //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>
策马西风 2025-01-11 08:36:09

列表视图示例:

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;
    }






}

Sample List view:

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;
    }






}
呢古 2025-01-11 08:36:09

适配器:

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;
    }
}

Adapter:

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;
    }
}
荭秂 2025-01-11 08:36:09

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);
    }
}

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);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文