Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 我的android學習經歷34,android學習經歷34

我的android學習經歷34,android學習經歷34

編輯:關於android開發

我的android學習經歷34,android學習經歷34


用類對象作為ArrayAdapter綁定的基本數據類型(和SimpleAdater效果類似)

一般ArrayAdapter綁定的基本數據類型是String,接下來介紹一下類對象作為基本數據類型;

首先,新建一個類News,這個類作為基本的數據類型

package com.example.news;

import android.R.integer;
import android.widget.ImageView;

public class News {
       private String title;
       private String content;
       private int imageId;
       
       News(String title,String content,int imageId){
           this.title=title;
           this.content=content;
           this.imageId=imageId;
       }
       
       public String  getTitle() {
        return title;
    }
       public String  getContent() {
           return content;
       }
       public int  getimageId() {
              return imageId;
          }
      public void setTitle(String title){
          this.title=title;
      }
      public void setContent(String content){
          this.content=content;
      }
}

接下來先把listView的item的布局確定下來,有一個Textview和ImageView;

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView 
        android:id="@+id/news_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <ImageView 
        android:id="@+id/news_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

 

然後自定義一個適配器NewsAdapter,繼承ArrayAdapter,並且實現其中的兩個方法,resourceId也就是上面的listView的item的布局的id;

package com.example.news;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class NewsAdapter extends ArrayAdapter<News>{
    
    private int resourceId;
    
    public NewsAdapter(Context context, int resource, List<News> objects) {
        super(context, resource, objects);
        // TODO Auto-generated constructor stub
        resourceId=resource;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
 
        News news=getItem(position);
        View view ;
        if(convertView==null){
            view=LayoutInflater.from(getContext()).inflate(resourceId, null);
        }else {
            view=convertView;
        }
        TextView news_title=(TextView) view.findViewById(R.id.news_title);
        ImageView news_image=(ImageView) view.findViewById(R.id.news_image);
        
        news_title.setText(news.getTitle());
        news_image.setImageResource(news.getimageId());
        return view;
    }
}

然後在主布局中添加一個listview控件,這個簡單,大家肯定都會

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <ListView 
        android:id="@+id/list_title"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"></ListView>
</RelativeLayout>

然後重寫主activity

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

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;

public class MainActivity extends Activity {
    
    private ListView list_title;
    private List<News> list= new ArrayList<News>();
    
    private NewsAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list_title=(ListView) findViewById(R.id.list_title);
        initList();    
        adapter=new NewsAdapter(this, R.layout.news_item,list);
        list_title.setAdapter(adapter);
    }
    private void initList() {
        
        News news1=new News("標題1", "1", R.drawable.ic_launcher);
        list.add(news1);
        News news2=new News("標題2", "2", R.drawable.ic_launcher);
        list.add(news2);
        News news3=new News("標題3", "3", R.drawable.ic_launcher);
        list.add(news3);
        News news4=new News("標題4", "4", R.drawable.ic_launcher);
        list.add(news4);
    }
    
}

界面效果

 

不懂得可以留言

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved