listview 滑動更改標題

package com.example.listviewtest;java

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;android

import org.w3c.dom.Text;json

import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;網絡

public class MainActivity extends Activity {
 ListView listview;
 HashMap<Integer,String> hashMap=new HashMap<Integer,String>();
 ArrayList<String> arrayList=new ArrayList<String>();
 private TextView textView;
 private int fir;app

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  listview=(ListView)findViewById(R.id.lt);
  textView = (TextView)findViewById(R.id.bt);
  textView.setText("biaoti1");dom

  for (int i = 0; i <90; i++) {//模仿從網絡中獲取的json數據
   if(i<10){
    if(!arrayList.contains("biaoti1")){
     arrayList.add("biaoti1");//標題只有一個
     hashMap.put(arrayList.size()-1,"biaoti1");//hashmap 記錄全部的標題位置
    }
    arrayList.add(i+"");
    hashMap.put(arrayList.size()-1,"biaoti1");ide

   }
   else if(10<=i&&i<20){
    if(!arrayList.contains("biaoti2")){
     arrayList.add("biaoti2");
     hashMap.put(arrayList.size()-1,"biaoti2");
    }
    arrayList.add(i+"");
    hashMap.put(arrayList.size()-1,"biaoti2");佈局

   }
   else if(20<=i&&i<30){
    if(!arrayList.contains("biaoti3")){
     arrayList.add("biaoti3");
     hashMap.put(arrayList.size()-1,"biaoti3");
    }
    arrayList.add(i+"");
    hashMap.put(arrayList.size()-1,"biaoti3");
   }
   else if(30<=i&&i<40){
    if(!arrayList.contains("biaoti4")){
     arrayList.add("biaoti4");
     hashMap.put(arrayList.size()-1,"biaoti4");
    }
    arrayList.add(i+"");
    hashMap.put(arrayList.size()-1,"biaoti4");this


   }
   else if(40<=i){
    if(!arrayList.contains("biaoti5")){
     arrayList.add("biaoti5");
     hashMap.put(arrayList.size()-1,"biaoti5");xml

    }
    arrayList.add(i+"");
    hashMap.put(arrayList.size()-1,"biaoti5");

   }

 

  }

 

 

    MyAdater myAdater = new MyAdater();
  listview.setAdapter(myAdater);
  listview.setOnScrollListener(new OnScrollListener() {

   @Override
   public void onScrollStateChanged(AbsListView view, int scrollState) {
    // TODO Auto-generated method stub
   }

   @Override
   public void onScroll(AbsListView view, int firstVisibleItem,
     int visibleItemCount, int totalItemCount) {
    // TODO Auto-generated method stub
    String nowTitle=textView.getText().toString();
   
     if(hashMap.get(firstVisibleItem+1)!=nowTitle){//下滑
      textView.setText(hashMap.get(firstVisibleItem+1));

     
    }
   
    else if(hashMap.get(firstVisibleItem)!=nowTitle){//上
     textView.setText(nowTitle);
     
     
    }

 

 


   }
  });


 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
  // Handle action bar item clicks here. The action bar will
  // automatically handle clicks on the Home/Up button, so long
  // as you specify a parent activity in AndroidManifest.xml.
  int id = item.getItemId();
  if (id == R.id.action_settings) {
   return true;
  }
  return super.onOptionsItemSelected(item);
 }
 class MyAdater extends BaseAdapter{

  private View view;
  @Override
  public int getCount() {
   // TODO Auto-generated method stub
   return arrayList==null?0:arrayList.size();
  }

  @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 int getViewTypeCount() {//重寫的時候必須帶上 否則報錯
   // TODO Auto-generated method stub
   return 2;
  }
  @Override
  public int getItemViewType(int position) {//獲取相對應的標題
   // TODO Auto-generated method stub
   if(!arrayList.contains("biaoti")){
    return 1;

   }
   else {
    return 0;
   }

  }
  @Override
  public View getView(int arg0, View arg1, ViewGroup arg2) {
   // TODO Auto-generated method stub
   int type = getItemViewType(arg0);
   if(arg1==null){
    if(type==0){
     view = getLayoutInflater().inflate(R.layout.title,null);
     MyTitle myTitle=new MyTitle();
     myTitle.title=(TextView)view.findViewById(R.id.title);
     view.setTag(myTitle);
    }
    else if(type==1){
     view=getLayoutInflater().inflate(R.layout.item,null);
     MyItem myItem=new MyItem();
     myItem.title=(TextView)view.findViewById(R.id.tv);
     view.setTag(myItem);
    }
   }
   else {
    view=arg1;
   }
   switch (type) {
   case 0:
    MyTitle myTitle=(MyTitle)view.getTag();
    myTitle.title.setText(arrayList.get(arg0));
    break;
   case 1:
    MyItem myItem=(MyItem)view.getTag();
    myItem.title.setText(arrayList.get(arg0));

    break;
   default:
    break;
   }

 

 

 


   return view;
  }
  class MyTitle {
   TextView title;

  }
  class MyItem{
   TextView title;

  }

 


 }

}

佈局:activety_main

 

 

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

    <ListView
        android:id="@+id/lt"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <TextView
        android:id="@+id/bt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_green_dark"
        android:gravity="center"
        android:text="biaotu" />

</RelativeLayout>

item.xml:

<?xml version="1.0" encoding="utf-8"?>
<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/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="nihao"
       
        />

</LinearLayout>

title.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<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/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="biaoti"
        android:textColor="@android:color/holo_blue_dark" />

</LinearLayout>

相關文章
相關標籤/搜索