gpt4 book ai didi

android - 当用户在字母列表上拖动时,想要创建带有前字符的快速滚动以显示在屏幕上

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:00:53 25 4
gpt4 key购买 nike

我已经做了联系人列表,就像下面提到的链接中的图像一样,

http://deshmukhanil.blogspot.in/2012/02/wanted-to-create-fast-scrolling-with.html

但问题是当我点击字母列表时,承租人没有显示,它只在我滚动“setFastScrollEnabled”时显示,但我不想在我的屏幕上显示“FastScroll”:这里是链接显示我想要的,

http://deshmukhanil.blogspot.in/2012/02/wanted-to-create-fast-scrolling-with_09.html

最佳答案

XML请引用以下代码。

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<ListView
android:id="@+id/myListView"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</ListView>

</LinearLayout>

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.Set;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SectionIndexer;

public class AlphabetIndexer extends Activity {
ListView myListView;
ArrayList<String> elements;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// elements
String s = "QWERTZUIOPASDFGHJKLYXCVBNM";
Random r = new Random();
elements = new ArrayList<String>();
for (int i = 0; i < 300; i++) {

elements.add(s.substring(r.nextInt(s.length())));

}
Collections.sort(elements); // Must be sorted!

// listview
myListView = (ListView) findViewById(R.id.myListView);
myListView.setFastScrollEnabled(true);
MyIndexerAdapter<String> adapter = new MyIndexerAdapter<String>(
getApplicationContext(), android.R.layout.simple_list_item_1,
elements);
myListView.setAdapter(adapter);

}

class MyIndexerAdapter<T> extends ArrayAdapter<T> implements SectionIndexer {

ArrayList<String> myElements;
HashMap<String, Integer> alphaIndexer;

String[] sections;

public MyIndexerAdapter(Context context, int textViewResourceId,
List<T> objects) {
super(context, textViewResourceId, objects);
myElements = (ArrayList<String>) objects;
// here is the tricky stuff
alphaIndexer = new HashMap<String, Integer>();
// in this hashmap we will store here the positions for
// the sections

int size = elements.size();
for (int i = size - 1; i >= 0; i--) {
String element = elements.get(i);
alphaIndexer.put(element.substring(0, 1), i);
//We store the first letter of the word, and its index.
//The Hashmap will replace the value for identical keys are putted in
}

// now we have an hashmap containing for each first-letter
// sections(key), the index(value) in where this sections begins

// we have now to build the sections(letters to be displayed)
// array .it must contains the keys, and must (I do so...) be
// ordered alphabetically

Set<String> keys = alphaIndexer.keySet(); // set of letters ...sets
// cannot be sorted...

Iterator<String> it = keys.iterator();
ArrayList<String> keyList = new ArrayList<String>(); // list can be
// sorted

while (it.hasNext()) {
String key = it.next();
keyList.add(key);
}

Collections.sort(keyList);

sections = new String[keyList.size()]; // simple conversion to an
// array of object
keyList.toArray(sections);

// ooOO00K !

}

@Override
public int getPositionForSection(int section) {
// Log.v("getPositionForSection", ""+section);
String letter = sections[section];

return alphaIndexer.get(letter);
}

@Override
public int getSectionForPosition(int position) {

// you will notice it will be never called (right?)
Log.v("getSectionForPosition", "called");
return 0;
}

@Override
public Object[] getSections() {

return sections; // to string will be called each object, to display
// the letter
}

}
}

关于android - 当用户在字母列表上拖动时,想要创建带有前字符的快速滚动以显示在屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9208112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com