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

仿餓了嗎點(diǎn)餐界面兩個(gè)ListView聯(lián)動(dòng)效果

 更新時(shí)間:2016年09月26日 14:01:50   作者:王豐蛋哥  
這篇文章主要介紹了仿餓了點(diǎn)餐界面2個(gè)ListView聯(lián)動(dòng)效果的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

如圖是效果圖

是仿餓了的點(diǎn)餐界面

1.點(diǎn)擊左側(cè)的ListView,通過在在適配器中設(shè)置Item來改變顏色,再通過notifyDataSetInvalidated來刷新并用lv_home.setSelection(showTitle.get(arg2));來關(guān)聯(lián)右側(cè)的

2.右側(cè)的主要是重寫下onScroll的方法;來改變左側(cè)ListView的顏色及背景

不過程序中還有個(gè)問題,望大神解答就是我右側(cè)的ListView下拉時(shí),上面的TextView能改變;但是上拉時(shí),TextView的不能及時(shí)改變應(yīng)為滑動(dòng)時(shí)我只拿了firstVisibleItem來判斷的

Demo的連接:http://download.csdn.net/detail/qq_29774291/9634011

如下是主程序代碼

package com.item.jiejie;
import java.util.ArrayList;
import java.util.List;
import com.item.jiejie.adapter.HomeAdapter;
import com.item.jiejie.adapter.MenuAdapter;
import com.item.jiejie.entity.FoodData;
import android.widget.AbsListView.OnScrollListener;
import android.os.Bundle;
import android.app.Activity;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AbsListView;
import android.widget.ListView;
import android.widget.TextView;
/**
* 防餓了的ListView聯(lián)動(dòng)的Demo
* 有BUG
* @author Administrator
*
*/
public class MainActivity extends Activity {
/**左側(cè)菜單*/
private ListView lv_menu;
/**右側(cè)主菜*/
private ListView lv_home;
private TextView tv_title;
private MenuAdapter menuAdapter;
private HomeAdapter homeAdapter;
private int currentItem;
/**
* 數(shù)據(jù)源
*/
private List<FoodData> foodDatas;
private String data[] = {"熱銷榜","新品套餐","便當(dāng)套餐","單點(diǎn)菜品","飲料類","水果罐頭","米飯"};
/**
* 里面存放右邊ListView需要顯示標(biāo)題的條目position
*/
private ArrayList<Integer> showTitle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
setView();
setData();
}
private void setView() {
// TODO Auto-generated method stub
lv_menu = (ListView)findViewById(R.id.lv_menu);
tv_title = (TextView)findViewById(R.id.tv_titile);
lv_home = (ListView)findViewById(R.id.lv_home);
foodDatas = new ArrayList<FoodData>();
for(int i =0;i < data.length; i++){
foodDatas.add(new FoodData(i, data[0] + i, data[0]));
}
for(int i =0;i < data.length -1; i++){
foodDatas.add(new FoodData(i, data[1] + i, data[1]));
}
for(int i =0;i < data.length-2; i++){
foodDatas.add(new FoodData(i, data[2] + i, data[2]));
}
for(int i =0;i < data.length-3; i++){
foodDatas.add(new FoodData(i, data[3] + i, data[3]));
}
for(int i =0;i < data.length-4; i++){
foodDatas.add(new FoodData(i, data[4] + i, data[4]));
}
for(int i =0;i < data.length-3; i++){
foodDatas.add(new FoodData(i, data[5] + i, data[5]));
}
for(int i =0;i < 6; i++){
foodDatas.add(new FoodData(i, data[6] + i, data[6]));
}
showTitle = new ArrayList<Integer>();
for(int i = 0; i < foodDatas.size(); i++){
if( i ==0){
showTitle.add(i );
System.out.println(i + "dd");
}else if (!TextUtils.equals(foodDatas.get(i).getTitle(), foodDatas.get(i - 1).getTitle())) {
showTitle.add(i );
System.out.println(i + "dd");
}
}
}
private void setData() {
// TODO Auto-generated method stub
tv_title.setText(foodDatas.get(0).getTitle());
menuAdapter = new MenuAdapter(this);
homeAdapter = new HomeAdapter(this, foodDatas);
lv_menu.setAdapter(menuAdapter);
lv_home.setAdapter(homeAdapter);
lv_menu.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
menuAdapter.setSelectItem(arg2);
menuAdapter.notifyDataSetInvalidated();
lv_home.setSelection(showTitle.get(arg2));
tv_title.setText(data[arg2]);
}
});
lv_home.setOnScrollListener(new OnScrollListener() {
private int scrollState;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
//System.out.println("onScrollStateChanged" + " scrollState" + scrollState);
this.scrollState = scrollState;
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) { 
return; 
} 
Log.d("jiejie", "onScroll" + " firstVisibleItem" + firstVisibleItem
+" visibleItemCount" + visibleItemCount + " totalItemCount" + totalItemCount);
int current =showTitle.indexOf(firstVisibleItem );
System.out.println(current + "dd" + firstVisibleItem);
// lv_home.setSelection(current);
if(currentItem != current && current >=0){
currentItem = current;
tv_title.setText(data[current]);
menuAdapter.setSelectItem(currentItem);
menuAdapter.notifyDataSetInvalidated();
}
}
});
}
}

左側(cè)ListView的適配器代碼

package com.item.jiejie.adapter;
import com.item.jiejie.R;
import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
/**
* 左側(cè)菜單ListView的適配器
* @author Administrator
*
*/
public class MenuAdapter extends BaseAdapter{
private Context context;
private int selectItem = 0;
private String data[] = {"熱銷榜","新品套餐","便當(dāng)套餐","單點(diǎn)菜品","飲料類","水果罐頭","米飯"};
public MenuAdapter(Context context) {
this.context = context;
}
public int getSelectItem() {
return selectItem;
}
public void setSelectItem(int selectItem) {
this.selectItem = selectItem;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return data.length;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
ViewHolder holder = null;
if(arg1 == null) {
holder = new ViewHolder();
arg1 = View.inflate(context, R.layout.item_menu, null);
holder.tv_name = (TextView)arg1.findViewById(R.id.item_name);
arg1.setTag(holder);
}else {
holder = (ViewHolder)arg1.getTag();
}
if(arg0 == selectItem){
holder.tv_name.setBackgroundColor(Color.WHITE);
holder.tv_name.setTextColor(context.getResources().getColor(R.color.text_green));
}else {
holder.tv_name.setBackgroundColor(context.getResources().getColor(R.color.ll_coachback));
holder.tv_name.setTextColor(context.getResources().getColor(R.color.text_deep));
}
holder.tv_name.setText(data[arg0]);
return arg1;
}
static class ViewHolder{
private TextView tv_name;
}
}

右側(cè)的適配器代碼

package com.item.jiejie.adapter;
import java.util.List;
import com.item.jiejie.R;
import com.item.jiejie.entity.FoodData;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
/**
* 右側(cè)主界面ListView的適配器
* 
* @author Administrator
* 
*/
public class HomeAdapter extends BaseAdapter {
private Context context;
private List<FoodData> foodDatas;
public HomeAdapter(Context context, List<FoodData> foodDatas) {
this.context = context;
this.foodDatas = foodDatas;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
if(foodDatas!=null){
return foodDatas.size();
}else { 
return 10;
} 
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
ViewHold holder = null;
if(arg1 == null){
arg1 = View.inflate(context, R.layout.item_home, null);
holder = new ViewHold();
holder.tv_title = (TextView)arg1.findViewById(R.id.item_home_title);
holder.tv_name = (TextView)arg1.findViewById(R.id.item_home_name);
arg1.setTag(holder);
}else {
holder = (ViewHold)arg1.getTag();
}
holder.tv_name.setText(foodDatas.get(arg0).getName());
holder.tv_title.setText(foodDatas.get(arg0).getTitle());
if(arg0 == 0){
holder.tv_title.setVisibility(View.VISIBLE);
}else if (!TextUtils.equals(foodDatas.get(arg0).getTitle(), foodDatas.get(arg0 -1).getTitle())) {
holder.tv_title.setVisibility(View.VISIBLE);
}else {
holder.tv_title.setVisibility(View.GONE);
}
return arg1;
}
private static class ViewHold{
private TextView tv_title;
private TextView tv_name;
}
}

以上所述是小編給大家介紹的仿餓了點(diǎn)餐界面2個(gè)ListView聯(lián)動(dòng)效果,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Android在WebView中調(diào)用系統(tǒng)下載的方法

    Android在WebView中調(diào)用系統(tǒng)下載的方法

    這篇文章主要為大家詳細(xì)介紹了Android在WebView中調(diào)用系統(tǒng)下載的簡(jiǎn)單使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android nativePollOnce函數(shù)解析

    Android nativePollOnce函數(shù)解析

    這篇文章主要介紹了Android nativePollOnce函數(shù)解析的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下
    2021-03-03
  • Android實(shí)現(xiàn)多媒體錄音筆

    Android實(shí)現(xiàn)多媒體錄音筆

    這篇文章主要介紹了Android實(shí)現(xiàn)多媒體錄音筆的相關(guān)資料,以及在實(shí)現(xiàn)過程中遇到問題的解決方法,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Android 獲取服務(wù)器與客戶端時(shí)差的實(shí)例代碼

    Android 獲取服務(wù)器與客戶端時(shí)差的實(shí)例代碼

    下面小編就為大家分享一篇Android 獲取服務(wù)器與客戶端時(shí)差的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • android canvas使用line畫半圓

    android canvas使用line畫半圓

    這篇文章主要為大家詳細(xì)介紹了android canvas使用line畫半園,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 如何使用Flutter發(fā)布安卓應(yīng)用

    如何使用Flutter發(fā)布安卓應(yīng)用

    應(yīng)用開發(fā)完了,當(dāng)然需要發(fā)布了,下面來看看用 Flutter 開發(fā)的應(yīng)用如何發(fā)布,本文只關(guān)注 Android 版本的發(fā)布
    2021-05-05
  • Android ListView控件使用方法

    Android ListView控件使用方法

    這篇文章主要為大家詳細(xì)介紹了Android ListView控件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • AndroidQ分區(qū)存儲(chǔ)權(quán)限變更及適配的實(shí)現(xiàn)

    AndroidQ分區(qū)存儲(chǔ)權(quán)限變更及適配的實(shí)現(xiàn)

    這篇文章主要介紹了AndroidQ分區(qū)存儲(chǔ)權(quán)限變更及適配的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Android控件gridview實(shí)現(xiàn)單行多列橫向滾動(dòng)效果

    Android控件gridview實(shí)現(xiàn)單行多列橫向滾動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了Android控件gridview實(shí)現(xiàn)單行多列橫向滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Android自動(dòng)測(cè)試工具M(jìn)onkey的實(shí)現(xiàn)方法

    Android自動(dòng)測(cè)試工具M(jìn)onkey的實(shí)現(xiàn)方法

    本文主要介紹Android Monkey 實(shí)現(xiàn)方法,Monkey測(cè)試是一種為了測(cè)試軟件的穩(wěn)定性、健壯性的快速有效的方法,具有非常重要的參考價(jià)值,希望對(duì)小伙伴有所幫助
    2016-07-07

最新評(píng)論

左贡县| 景洪市| 铜鼓县| 巴青县| 长宁区| 清丰县| 平陆县| 衡阳县| 东乌珠穆沁旗| 黎平县| 乌拉特中旗| 哈巴河县| 西乡县| 怀仁县| 山阴县| 金阳县| 牟定县| 铅山县| 邹城市| 商丘市| 邵阳市| 遵化市| 邯郸市| 青铜峡市| 来宾市| 保山市| 越西县| 永康市| 日土县| 武平县| 扎囊县| 长兴县| 读书| 加查县| 高淳县| 田林县| 潜山县| 蒲江县| 台东市| 咸丰县| 原平市|