当前位置:  编程技术>移动开发
本页文章导读:
    ▪listView自定义过滤状况扩展arrayAdapter        listView自定义过滤情况扩展arrayAdapter package me.alxandr.android.mymir.adapters;  import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java..........
    ▪ scrollView 在中间,下上各有一个固定控件的布局        scrollView 在中间,上下各有一个固定控件的布局  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_height="w.........
    ▪ 开启另一个运用       开启另一个应用 private void start() { Intent intent = new Intent(); try { intent.setClassName(getApplicationContext().createPackageContext( "com.example", android.content.Context.CONTEXT_IGNORE_SECURITY),.........

[1]listView自定义过滤状况扩展arrayAdapter
    来源: 互联网  发布时间: 2014-02-18
listView自定义过滤情况扩展arrayAdapter

package me.alxandr.android.mymir.adapters; 
 
import java.util.ArrayList; 
import java.util.Collection; 
import java.util.Collections; 
import java.util.HashMap; 
import java.util.Iterator; 
import java.util.Set; 
 
import me.alxandr.android.mymir.R; 
import me.alxandr.android.mymir.model.Manga; 
import android.content.Context; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.Filter; 
import android.widget.SectionIndexer; 
import android.widget.TextView; 
 
public class MangaListAdapter extends ArrayAdapter<Manga> implements SectionIndexer 

    public ArrayList<Manga> items; 
    public ArrayList<Manga> filtered; 
    private Context context; 
    private HashMap<String, Integer> alphaIndexer; 
    private String[] sections = new String[0]; 
    private Filter filter; 
    private boolean enableSections; 
 
    public Manga getByPosition(int position) 
    { 
        return items.get(position); 
    } 
 
    public MangaListAdapter(Context context, int textViewResourceId, ArrayList<Manga> items, boolean enableSections) 
    { 
        super(context, textViewResourceId, items); 
        this.filtered = items; 
        this.items = filtered; 
        this.context = context; 
        this.filter = new MangaNameFilter(); 
        this.enableSections = enableSections; 
 
        if(enableSections) 
        { 
            alphaIndexer = new HashMap<String, Integer>(); 
            for(int i = items.size() - 1; i >= 0; i--) 
            { 
                Manga element = items.get(i); 
                String firstChar = element.getName().substring(0, 1).toUpperCase(); 
                if(firstChar.charAt(0) > 'Z' || firstChar.charAt(0) < 'A') 
                    firstChar = "@"; 
 
                alphaIndexer.put(firstChar, i); 
            } 
 
            Set<String> keys = alphaIndexer.keySet(); 
            Iterator<String> it = keys.iterator(); 
            ArrayList<String> keyList = new ArrayList<String>(); 
            while(it.hasNext()) 
                keyList.add(it.next()); 
 
            Collections.sort(keyList); 
            sections = new String[keyList.size()]; 
            keyList.toArray(sections); 
        } 
    } 
 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 
        View v = convertView; 
        if(v == null) 
        { 
            LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
            v = vi.inflate(R.layout.mangarow, null); 
        } 
 
        Manga o = items.get(position); 
        if(o != null) 
        { 
            TextView tt = (TextView) v.findViewById(R.id.MangaRow_MangaName); 
            TextView bt = (TextView) v.findViewById(R.id.MangaRow_MangaExtra); 
            if(tt != null) 
                tt.setText(o.getName()); 
            if(bt != null) 
                bt.setText(o.getLastUpdated() + " - " + o.getLatestChapter()); 
 
            if(enableSections && getSectionForPosition(position) != getSectionForPosition(position + 1)) 
            { 
                TextView h = (TextView) v.findViewById(R.id.MangaRow_Header); 
                h.setText(sections[getSectionForPosition(position)]); 
                h.setVisibility(View.VISIBLE); 
            } 
            else 
            { 
                TextView h = (TextView) v.findViewById(R.id.MangaRow_Header); 
                h.setVisibility(View.GONE); 
            } 
        } 
 
        return v; 
    } 
 
    @Override 
    public void notifyDataSetInvalidated() 
    { 
        if(enableSections) 
        { 
            for (int i = items.size() - 1; i >= 0; i--) 
            { 
                Manga element = items.get(i); 
                String firstChar = element.getName().substring(0, 1).toUpperCase(); 
                if(firstChar.charAt(0) > 'Z' || firstChar.charAt(0) < 'A') 
                    firstChar = "@"; 
                alphaIndexer.put(firstChar, i); 
            } 
 
            Set<String> keys = alphaIndexer.keySet(); 
            Iterator<String> it = keys.iterator(); 
            ArrayList<String> keyList = new ArrayList<String>(); 
            while (it.hasNext()) 
            { 
                keyList.add(it.next()); 
            } 
 
            Collections.sort(keyList); 
            sections = new String[keyList.size()]; 
            keyList.toArray(sections); 
 
            super.notifyDataSetInvalidated(); 
        } 
    } 
 
    public int getPositionForSection(int section) 
    { 
        if(!enableSections) return 0; 
        String letter = sections[section]; 
 
        return alphaIndexer.get(letter); 
    } 
 
    public int getSectionForPosition(int position) 
    { 
        if(!enableSections) return 0; 
        int prevIndex = 0; 
        for(int i = 0; i < sections.length; i++) 
        { 
            if(getPositionForSection(i) > position && prevIndex <= position) 
            { 
                prevIndex = i; 
                break; 
            } 
            prevIndex = i; 
        } 
        return prevIndex; 
    } 
 
    public Object[] getSections() 
    { 
        return sections; 
    } 
 
    @Override 
    public Filter getFilter() 
    { 
        if(filter == null) 
            filter = new MangaNameFilter(); 
        return filter; 
    } 
 
    private class MangaNameFilter extends Filter 
    { 
 
        @Override 
        protected FilterResults performFiltering(CharSequence constraint) { 
            // NOTE: this function is *always* called from a background thread, and 
            // not the UI thread. 
            constraint = constraint.toString().toLowerCase(); 
            FilterResults result = new FilterResults(); 
            if(constraint != null && constraint.toString().length() > 0) 
            { 
                ArrayList<Manga> filt = new ArrayList<Manga>(); 
                ArrayList<Manga> lItems = new ArrayList<Manga>(); 
                synchronized (this) 
                { 
                    lItems.addAll(items); 
                } 
                for(int i = 0, l = lItems.size(); i < l; i++) 
                { 
                    Manga m = lItems.get(i); 
                    if(m.getName().toLowerCase().contains(constraint)) 
                        filt.add(m); 
                } 
                result.count = filt.size(); 
                result.values = filt; 
            } 
            else 
            { 
                synchronized(this) 
                { 
                    result.values = items; 
                    result.count = items.size(); 
                } 
            } 
            return result; 
        } 
 
        @SuppressWarnings("unchecked") 
        @Override 
        protected void publishResults(CharSequence constraint, FilterResults results) { 
            // NOTE: this function is *always* called from the UI thread. 
            filtered = (ArrayList<Manga>)results.values; 
            notifyDataSetChanged(); 
            clear(); 
            for(int i = 0, l = filtered.size(); i < l; i++) 
                add(filtered.get(i)); 
            notifyDataSetInvalidated(); 
        } 
 
    } 

http://appvisum.com/Alxandr/MyMir.


    
[2] scrollView 在中间,下上各有一个固定控件的布局
    来源: 互联网  发布时间: 2014-02-18
scrollView 在中间,上下各有一个固定控件的布局

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_height="wrap_content" android:layout_width="fill_parent">
     <TextView android:id="@+id/TextView01" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="This text view should act as header  " />
     <ScrollView android:layout_marginBottom="50dip" android:id="@+id/ScrollView01" android:layout_height="wrap_content" android:layout_width="fill_parent">
          <RadioGroup android:id="@+id/RadioGroup01" android:layout_width="wrap_content" android:layout_height="wrap_content">
               <RadioButton android:id="@+id/RadioButton01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />
               <RadioButton android:id="@+id/RadioButton11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio Button....." />       
          </RadioGroup>
     </ScrollView>
     <RelativeLayout android:layout_marginTop="-50dip" android:gravity="bottom" android:layout_height="wrap_content" android:layout_width="fill_parent">
        <Button android:id="@+id/Button01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="A button that should always be at the bottom"/>
     </RelativeLayout>
</LinearLayout>

 


    
[3] 开启另一个运用
    来源: 互联网  发布时间: 2014-02-18
开启另一个应用
private void start()
{
    Intent intent = new Intent();
    try
    {
        intent.setClassName(getApplicationContext().createPackageContext(
            "com.example",
        android.content.Context.CONTEXT_IGNORE_SECURITY),
            "com.example.ExampleActivity");
    }
    catch (NameNotFoundException e)
    {
        e.printStackTrace();
    }
    startActivity(intent);
}

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3