android 中listview添加数据,以及listview优化

1.先看一个listview添加string数据:新建一个项目,ListViewDemo,MainActivity.java代码如下:
public class MainActivity extends Activity {
    String[]  nameList ={"banbana","apple","orange","Watermelon","Pear","Grape"};
     private ListView listview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listview =(ListView)findViewById(R.id.listview);
        addString();
    }
    private void addString(){
        ArrayAdapter<String> adapter =new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,nameList);
        listview.setAdapter(adapter);
    }
}
,这里面对listview添加的设配器是用系统的,ArrayAdapter (Context context, int resource, T[] objects),三个参数,第一个是context,第二个就是资源文件的id,三单个就是object数组. 再看一下xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>
只有一个listview,运行程序,如下: ,如果想去掉listview的横线:
        listview.setDividerHeight(0);//屏蔽掉listview的横线
        listview.setDivider(null);

  2.listview添加一张图片和文字

     修改MainActivity.java代码如下:

public class MainActivity extends Activity {
     private ListView listview;
    String [] lefttitles={"个人信息","健康周报","跑步","设备管理","设置","关于"};
    int [] leftImageList={R.mipmap.sliding_personal_info,R.mipmap.sliding_health_news,R.mipmap.sliding_run,
            R.mipmap.sliding_device_manage,R.mipmap.sliding_setting,R.mipmap.sliding_about};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listview =(ListView)findViewById(R.id.listview);
       addImage();
    }
    private void addImage(){
        listview.setAdapter(new SlidingListviewAdapter(this,lefttitles,leftImageList));
    }
其中leftImageList的文件就是自己存放在mipmap下的资源文件,看下这个SlidingListciewAdapter代码:
public class SlidingListviewAdapter extends BaseAdapter {
    View [] itemViews;
    LayoutInflater la;
    public SlidingListviewAdapter(Context c, String [] itemTitles, int [] itemImageRes){
        itemViews = new View[itemTitles.length];
        la=LayoutInflater.from(c);
        for (int i=0; i<itemViews.length; ++i){
            itemViews[i] = makeItemView(itemTitles[i],
                    itemImageRes[i]);
        }
    }

    private View makeItemView(String strTitle,  int resId) {

        // 使用View的对象itemView与R.layout.item关联
        View itemView = la.inflate(R.layout.left_main_listview_items, null);

        // 通过findViewById()方法实例R.layout.item内各组件
        TextView title = (TextView)itemView.findViewById(R.id.itemTitle);
        title.setText(strTitle);
        ImageView image = (ImageView)itemView.findViewById(R.id.itemImage);
        image.setImageResource(resId);
        return itemView;
    }

    @Override
    public int getCount() {
        return itemViews.length;
    }

    @Override
    public Object getItem(int position) {
        return itemViews[position];
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null)
            return itemViews[position];
        return convertView;
    }
}
 getCount()方法(在此适配器中所代表的数据集中的条目数),getItem(int position) (获取数据集中与指定索引对应的数据项),
getItemId(int position)(取在列表中与指定索引对应的行id),每个子项被滚动到屏幕内的时候会调用getView()方法,效果如下:
源码(ListviewDemo)


  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Android应用程序使用ListView显示MySQL数据,需要进行以下步骤: 1. 创建一个MySQL数据库,并将数据存储在其。 2. 在Android应用程序创建一个ListView对象。 3. 创建一个适配器(例如ArrayAdapter)用于将数据从MySQL数据检索并将其显示在ListView。 4. 使用异步任务(AsyncTask)执行与MySQL数据库的连接和数据检索操作,以避免在UI线程进行长时间的操作。 5. 在ListView显示检索到的数据。 以下是一个简单的示例代码,展示如何在Android应用程序将MySQL数据ListView显示: 1. 在MySQL数据创建一个名称为"person"的表,包含"id"和"name"两个字段。 2. 在Android应用程序创建一个ListView对象,并将其添加到布局文件: ``` <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent"/> ``` 3. 创建一个适配器对象(例如ArrayAdapter): ``` ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, new ArrayList<String>()); ``` 4. 使用异步任务(AsyncTask)执行与MySQL数据库的连接和数据检索操作: ``` private class GetDataTask extends AsyncTask<Void, Void, Void> { private String url = "jdbc:mysql://your.database.url/database_name"; private String user = "your_username"; private String password = "your_password"; @Override protected Void doInBackground(Void... params) { try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection(url, user, password); Statement st = con.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM person"); while(rs.next()) { String id = rs.getString("id"); String name = rs.getString("name"); adapter.add(id + " " + name); } con.close(); } catch (Exception e) { Log.e("Error", e.getMessage()); e.printStackTrace(); } return null; } @Override protected void onPostExecute(Void result) { ListView listView = (ListView) findViewById(R.id.listview); listView.setAdapter(adapter); } } new GetDataTask().execute(); ``` 5. 运行应用程序,ListView将显示从MySQL数据检索到的数据。 请注意,此示例代码仅用于演示目的,实际应用程序可能需要更多的错误处理和优化
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值