最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android中使用ListView模擬微信好友功能

 更新時(shí)間:2017年08月28日 15:13:04   作者:鉆石VIP  
這篇文章主要介紹了Android中使用ListView模擬微信好友功能,需要的朋友可以參考下

效果圖:

分析:

1、創(chuàng)建listView

2、創(chuàng)建數(shù)據(jù)

3、創(chuàng)建適配器

  將數(shù)據(jù)放到呈現(xiàn)數(shù)據(jù)的容器里面。

  將這個(gè)容器(帶數(shù)據(jù))連接適配器。

    其實(shí)是直接在我們自己寫的adapter的getView重載方法中返回連接的view。   

 View view=View.inflate(mContext, com.example.weChatFriends.R.layout.item_friend, null);
    return view;

4、ListView設(shè)置適配器

代碼:

package fry;
import java.util.ArrayList;
import java.util.List;
import com.example.weChatFriends.R;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.Toast;
public class Activity01 extends Activity implements OnItemSelectedListener,OnItemClickListener{
  private FriendModel friend;
  private ListView listView;
  private List<FriendModel> list;
  private weChatListAdapter adapter;
  //存資源圖片ID
  private int[] imageID=new int[]{R.drawable.image1,R.drawable.image2,
      R.drawable.image3,R.drawable.image4,R.drawable.image5,R.drawable.image6,
      R.drawable.image7,R.drawable.image8,R.drawable.image9,R.drawable.image10,
      R.drawable.image11};
  //存昵稱
  private String[] nickName=new String[]{"張三","吳京","戰(zhàn)狼","神煩xp","木魚"
      ,"水心","系大大","電影","血怒","創(chuàng)奇","講故事"
  };
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity01);
    init();
    setData();
  }
  private void setData() {
    //這里要是寫成for(int i:imageID),那么i就是資源id,例如2130837505
    for(int i=0;i<imageID.length;i++){
      FriendModel friend1=new FriendModel();
      //System.out.println(i);
      friend1.setImageNum(imageID[i]);
      friend1.setNickName(nickName[i]);
      friend1.setSignature("我要做比海賊王還強(qiáng)大的人");
      list.add(friend1);
    }
    adapter=new weChatListAdapter(list, this);
    listView.setAdapter(adapter);
  }
  private void init() {
    listView=(ListView) findViewById(R.id.listView);
    listView.setOnItemSelectedListener(this);
    listView.setOnItemClickListener(this);
    friend=new FriendModel();
    list=new ArrayList<FriendModel>();
  }
  /*
   * Callback method to be invoked when an item in this view has been selected. This callback is invoked only when the newly selected position is different from the previously selected position or if there was no selected item.(non-Javadoc)
   * @see android.widget.AdapterView.OnItemSelectedListener#onItemSelected(android.widget.AdapterView, android.view.View, int, long)
   */
  @Override
  public void onItemSelected(AdapterView<?> parent, View view, int position,
      long id) {
  }
  @Override
  public void onNothingSelected(AdapterView<?> parent) {
    // TODO Auto-generated method stub
  }
  @Override
  public void onItemClick(AdapterView<?> parent, View view, int position,
      long id) {
    FriendModel friendItem=(FriendModel) parent.getItemAtPosition(position);
    String s=friendItem.getNickName();
    Log.d("onItemClick","s");
    Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
  }
}
package fry;
import java.util.List;
import com.example.weChatFriends.R;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class weChatListAdapter extends BaseAdapter{
  private List<FriendModel> myData;
  private Context mContext;
  private ImageView avator;
  private TextView nickName1;
  private TextView signature1;
  private FriendModel friend;
  public weChatListAdapter(List<FriendModel> data, Context mContext) {
    super();
    this.myData = data;
    this.mContext = mContext;
  }
  //How many items are in the data set represented by this Adapter.
  @Override
  public int getCount() {
    // TODO Auto-generated method stub
    return this.myData.size();
  }
  //Get the data item associated with the specified position in the data set.
  @Override
  public Object getItem(int position) {
    // TODO Auto-generated method stub
    return this.myData.get(position);
  }
  //Get the row id associated with the specified position in the list.
  @Override
  public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
  }
  //Get a View that displays the data at the specified position in the data set. 
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View view=View.inflate(mContext, com.example.weChatFriends.R.layout.item_friend, null);
    //System.out.println(position);
    friend=myData.get(position);
    int ImageID=friend.getImageNum();
    String nickName=friend.getNickName();
    String signature=friend.getSignature();
    avator=(ImageView) view.findViewById(R.id.iv_avator);
    nickName1=(TextView)view.findViewById(R.id.tv_nickname);
    signature1=(TextView)view.findViewById(R.id.tv_signature);
    avator.setImageResource(ImageID);
    nickName1.setText(nickName);
    signature1.setText(signature);
    return view;
  }
}

自己創(chuàng)建的適配器

package fry;
public class FriendModel {
  //頭像的圖片id
  private int imageNum;
  //昵稱
  private String nickName;
  //個(gè)性簽名
  private String signature;
  public int getImageNum() {
    return imageNum;
  }
  public void setImageNum(int imageNum) {
    this.imageNum = imageNum;
  }
  public String getNickName() {
    return this.nickName;
  }
  public void setNickName(String nickName) {
    this.nickName = nickName;
  }
  public String getSignature() {
    return signature;
  }
  public void setSignature(String signature) {
    this.signature = signature;
  }
}

列表中聯(lián)系人數(shù)據(jù)的封裝

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/listView"
  android:layout_width="match_parent"
  android:layout_height="wrap_content" >
</ListView>
ListView
 ListView
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" >
  <ImageView 
    android:id="@+id/iv_avator"
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:src="@drawable/image1"
    />
  <TextView 
    android:id="@+id/tv_nickname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/iv_avator"
    android:layout_centerVertical="true"
    android:layout_marginLeft="20dp"
    android:text="張三"
    />
  <TextView 
    android:id="@+id/tv_signature"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_alignParentRight="true"
    android:text="我要做比海賊王更強(qiáng)大的男人"
    />
</RelativeLayout>

用于存放數(shù)據(jù)的容器

相關(guān)文章

  • Android通過ksoap2傳遞復(fù)雜數(shù)據(jù)類型及CXF發(fā)布的webservice詳細(xì)介紹

    Android通過ksoap2傳遞復(fù)雜數(shù)據(jù)類型及CXF發(fā)布的webservice詳細(xì)介紹

    這篇文章主要介紹了 Android通過ksoap2傳遞復(fù)雜數(shù)據(jù)類型詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 如何使用Flutter實(shí)現(xiàn)手寫簽名效果

    如何使用Flutter實(shí)現(xiàn)手寫簽名效果

    Flutter插件提供了用于繪制平滑簽名的簽名板,下面這篇文章主要給大家介紹了關(guān)于如何使用Flutter實(shí)現(xiàn)手寫簽名效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Android開發(fā)之AppWidget詳解

    Android開發(fā)之AppWidget詳解

    這篇文章主要介紹了Android開發(fā)之AppWidget詳解,想了解桌面程序AppWidget的同學(xué)可以參考下
    2021-04-04
  • Android notifyDataSetChanged() 動(dòng)態(tài)更新ListView案例詳解

    Android notifyDataSetChanged() 動(dòng)態(tài)更新ListView案例詳解

    這篇文章主要介紹了Android notifyDataSetChanged() 動(dòng)態(tài)更新ListView案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Android Studio 3.6運(yùn)行模擬器時(shí)Emulator警告問題的解決方案

    Android Studio 3.6運(yùn)行模擬器時(shí)Emulator警告問題的解決方案

    這篇文章主要介紹了Android Studio 3.6運(yùn)行模擬器時(shí)Emulator警告問題的解決方案,本文給大家介紹的非常詳細(xì),對大家的工作或?qū)W習(xí)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Android中Listview點(diǎn)贊功能的實(shí)現(xiàn)

    Android中Listview點(diǎn)贊功能的實(shí)現(xiàn)

    最近一段時(shí)間在研究android方面的知識(shí),利用listview實(shí)現(xiàn)點(diǎn)贊功能,下面小編通過本文給大家介紹下基本思路,需要的朋友可以參考下
    2016-11-11
  • Android實(shí)現(xiàn)設(shè)置APP灰白模式效果

    Android實(shí)現(xiàn)設(shè)置APP灰白模式效果

    大家好,本篇文章主要講的是Android實(shí)現(xiàn)設(shè)置APP灰白模式效果,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Android RIL使用詳解

    Android RIL使用詳解

    這篇文章主要介紹了Android RIL使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • flutter實(shí)現(xiàn)發(fā)送驗(yàn)證碼功能

    flutter實(shí)現(xiàn)發(fā)送驗(yàn)證碼功能

    這篇文章主要為大家詳細(xì)介紹了flutter發(fā)送驗(yàn)證碼功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Android Jetpack庫剖析之Lifecycle組件篇

    Android Jetpack庫剖析之Lifecycle組件篇

    本章也是帶來了Jetpack中我認(rèn)為最重要的架構(gòu)組件Lifecycle的原理探索,至于為什么覺得它是最重要是因?yàn)橄馰iewModel,LiveData這些組件也依賴于Lifecycle來感知宿主的生命周期,那么本章我們帶著幾個(gè)問題來探索一下這個(gè)組件
    2022-07-07

最新評論

丹阳市| 陕西省| 新巴尔虎左旗| 黔西县| 奉化市| 陈巴尔虎旗| 虎林市| 青海省| 龙岩市| 富锦市| 浪卡子县| 尚志市| 馆陶县| 洛川县| 平罗县| 沅陵县| 林口县| 和龙市| 桐庐县| 天全县| 襄汾县| 双城市| 京山县| 休宁县| 临湘市| 炉霍县| 深州市| 雷山县| 罗江县| 商都县| 越西县| 长兴县| 巧家县| 信阳市| 莱阳市| 营口市| 象州县| 石首市| 都江堰市| 嘉善县| 富平县|