Android rt java.util.ArrayList; 导入java.util.HashMap; 进口com.stampii.stampii.R; 导入com.stampii.stampii.comm.rpc.UserDatabaseHelper; 导入andro

Android rt java.util.ArrayList; 导入java.util.HashMap; 进口com.stampii.stampii.R; 导入com.stampii.stampii.comm.rpc.UserDatabaseHelper; 导入andro,android,adapter,swipe-gesture,Android,Adapter,Swipe Gesture,rt java.util.ArrayList; 导入java.util.HashMap; 进口com.stampii.stampii.R; 导入com.stampii.stampii.comm.rpc.UserDatabaseHelper; 导入android.app.Activity; 导入android.content.Intent; 导入android.content.res.Configuration; 导入android.database.Cursor; 导入android.graph

rt java.util.ArrayList; 导入java.util.HashMap; 进口com.stampii.stampii.R; 导入com.stampii.stampii.comm.rpc.UserDatabaseHelper; 导入android.app.Activity; 导入android.content.Intent; 导入android.content.res.Configuration; 导入android.database.Cursor; 导入android.graphics.Bitmap; 导入android.os.Bundle; 导入android.os.Environment; 导入android.util.Log; 导入android.view.view; 导入android.widget.Button; 导入android.widget.ImageButton; 公开课卡扩大活动范围{ 公共光标; int indexxx; 位图b; int objectId; int-cardsId; 数组列表ID; 字符串路径; int mediaType=5001; 阵列图像; int卡; 字符串cardSQL; 私有视图流视图流; /**在首次创建活动时调用*/ @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(右布局、圆形布局); UserDatabaseHelper userDbHelper=newuserdatabasehelper(this,null,1); 初始化(这个); HashMap hm=新的HashMap(); ids=新的ArrayList(); images=newarraylist(); /* *卡ID-获取正确的卡 */ final int cardId=getIntent().getIntExtra(“卡id”,0); 日志i(“卡Id”、“卡Id卡:“+cardId”); /* *收集ID-获取正确的收集卡 */ final int collId=getIntent().getIntExtra(“集合id”,0); Log.i(“集合Id”,“集合Id:+collId”); //单击项目的位置 int position=getIntent().getIntExtra(“位置”,0); 日志i(“位置”,“位置:”+位置); /* *指示哪个活动正在打开此活动以选择正确的 *来自数据库的卡。值1:所有Stampii-列出所有拥有的卡 *stampii卡价值2:自有stampii-列出所有自有stampii *卡值3:重复Stampii-仅列出重复Stampii *卡值4:上次购买-列出上次购买的stampii *纸牌 */ int activity=getIntent().getIntExtra(“活动”,1); Log.d(“,”活动:“+活动); /* *指示排序类型:值1:按标记排序值2:按排序 *类别值3:按日期排序 *默认情况下,排序类型是按标记!(坏家伙Muthaphucka) */ int sort=getIntent().getIntExtra(“排序类型”,1); Log.d(“,”排序类型:“+sort”); int extra=getIntent().getIntExtra(“额外”,0); 对数d(“,”额外:“+额外); 开关(活动){ 案例1://所有Stampii cardSQL=getOwnedCards(排序、碰撞、额外); 打破 案例2://Stampii cardSQL=getOwnedCards(排序、碰撞、额外); 打破 案例3://Stampii cardSQL=getRepeatedCards(排序、碰撞、额外); 打破 案例4://最后获得 cardSQL=getOwnedCards(排序、碰撞、额外); 打破 } 游标卡=userDbHelper.executeSQLQuery(cardSQL); if(cards.getCount()==0){ 卡片。关闭(); }else if(cards.getCount()>0){ 对于(cards.move(0);cards.moveToNext();cards.isAfterLast()){ cardsId=Integer.parseInt(cards.getString(cards .getColumnIndex(“objectId”); card=Integer.parseInt(cards.getString(cards .getColumnIndex(“cardId”); String path=Environment.getExternalStorageDirectory() +“/.Stampii/MediaCard/”+cardsId+“.png”; 添加(卡片); hm.put(cardsId,path); path=hm.get(cardsId); 添加(路径); } } 按钮后退=(按钮)findViewById(R.id.back\u按钮); back.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 完成(); } }); viewFlow=(viewFlow)findViewById(R.id.viewFlow); setAdapter(新的ImageAdapter(此,图像),位置); ImageButton prevBtn=(ImageButton)findViewById(R.id.previous_按钮); prevBtn.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ indexxx=viewFlow.getSelectedItemPosition()-1; 如果(indexxx>=0){ viewFlow.setAdapter(新的图像适配器(Cards.this,图像), indexxx); viewFlow.SETSELECTEDITEMPOSION(indexxx); Log.i(“indexx”,“indexx:+indexx”); } } }); ImageButton nextBtn=(ImageButton)findViewById(R.id.next_按钮); nextBtn.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ indexx=viewFlow.getSelectedItemPosition()+1; if(indexxximport java.io.File; import java.util.ArrayList; import android.app.Activity; import android.content.Intent; import android.content.res.Configuration; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageButton; public class Cards extends Activity { public Cursor cursor; int position; int indexxx; Bitmap b; int objectId; int cardsId; private ViewFlow viewFlow; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.circle_layout); UserDatabaseHelper userDbHelper = new UserDatabaseHelper(this, null, 1); userDbHelper.initialize(this); final int cardId = getIntent().getIntExtra("card_id",0); Log.i("Card Id ","Card Id : "+cardId); final int collId = getIntent().getIntExtra("collection_id",0); Log.i("Collection Id ","Collection Id : "+collId); position = getIntent().getIntExtra("position",0); Log.i("position","position : "+position); String cardSQL = "SELECT cm.objectId "+ "FROM cardmedias AS cm "+ "INNER JOIN cards AS cd "+ "ON (cm.cardId = cd.objectId) "+ "WHERE cd.collectionId="+collId; Cursor cards = userDbHelper.executeSQLQuery(cardSQL); if (cards.getCount() == 0) { Log.i("", "No Image file"); cards.close(); } else if (cards.getCount() > 0) { for (cards.move(0); cards.moveToNext(); cards.isAfterLast()) { cardsId = Integer.parseInt(cards.getString(cards .getColumnIndex("objectId"))); Log.i("", "cards objectId : " + cardsId); String path = Environment.getExternalStorageDirectory() + "/.Stampii/MediaCard/" + cardsId + ".png"; Log.i("", "path : " + path); } } String sql = "SELECT objectId FROM cardmedias WHERE cardId=" + cardId + " LIMIT 1"; Cursor cursor = userDbHelper.executeSQLQuery(sql); if (cursor.getCount() == 0) { Log.i("", "No Image file"); cursor.close(); } else if (cursor.getCount() > 0) { for (cursor.move(0); cursor.moveToNext(); cursor.isAfterLast()) { objectId = Integer.parseInt(cursor.getString(cursor .getColumnIndex("objectId"))); Log.i("", "objectId : " + objectId); } } Button info = (Button) findViewById(R.id.info_button); info.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Cards.this, SingleCardInfo.class); intent.putExtra("card_id", cardId); intent.putExtra("collection_id", collId); startActivity(intent); } }); Button back = (Button) findViewById(R.id.back_button); back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); final ArrayList<Bitmap> images = new ArrayList<Bitmap>(); String path = Environment.getExternalStorageDirectory()+"/.Stampii/MediaCard/"+objectId+".png"; BitmapFactory.Options options = new BitmapFactory.Options(); options.inTempStorage = new byte[16*1024]; Bitmap b = BitmapFactory.decodeFile(path, options); images.add(b); viewFlow = (ViewFlow) findViewById(R.id.viewflow); viewFlow.setAdapter(new ImageAdapter(this, images),position); ImageButton prevBtn = (ImageButton) findViewById(R.id.previous_button); prevBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { indexxx = viewFlow.getSelectedItemPosition()-1; if (indexxx>=0) { viewFlow.setAdapter(new ImageAdapter(Cards.this, images),indexxx); viewFlow.setSelectedItemPosition(indexxx); Log.i("indexxx", "indexxx : " + indexxx); } } }); ImageButton nextBtn = (ImageButton) findViewById(R.id.next_button); nextBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { indexxx = viewFlow.getSelectedItemPosition()+1; if (indexxx<=images.size()) { viewFlow.setAdapter(new ImageAdapter(Cards.this, images),indexxx); viewFlow.setSelectedItemPosition(indexxx); Log.i("indexxx", "indexxx : " + indexxx); } } }); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); viewFlow.onConfigurationChanged(newConfig); } }
import java.util.ArrayList;

import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter {

    private LayoutInflater mInflater;
    private ArrayList<Bitmap> ids = new ArrayList<Bitmap>();
    private Bitmap bitmap;

    public ImageAdapter(Context context, ArrayList<Bitmap> images) {
        mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        ids = images;
    }

    @Override
    public int getCount() {
        return 1;
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.image_item, null);
        }
        ((ImageView) convertView.findViewById(R.id.imgView)).setImageBitmap(ids.get(position));
        return convertView;
    }

}
@Override
public int getCount() {
    return ids.size();
}
        @Override
        public void onClick(View v) {
            indexxx = viewFlow.getSelectedItemPosition()-1;
            if (indexxx>=0) {
                viewFlow.setSelection(indexxx);
                Log.i("indexxx", "indexxx : " + indexxx);
            }
        }
        /* ... */
        @Override
        public void onClick(View v) {
            indexxx = viewFlow.getSelectedItemPosition()+1;
            if (indexxx<images.size()) { // Should be <, you have a wrong boundary check here!!!
                viewFlow.setSelection(indexxx);
                Log.i("indexxx", "indexxx : " + indexxx);
            }
        }
import java.util.ArrayList;
import java.util.HashMap;

import com.stampii.stampii.R;
import com.stampii.stampii.comm.rpc.UserDatabaseHelper;

import android.app.Activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;

public class Cards extends Activity {

    public Cursor cursor;
    int indexxx;
    Bitmap b;
    int objectId;
    int cardsId;
    ArrayList<Integer> ids;
    String path;
    int mediaType = 5001;
    ArrayList<String> images;
    int card;
    String cardSQL;

    private ViewFlow viewFlow;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.circle_layout);
        UserDatabaseHelper userDbHelper = new UserDatabaseHelper(this, null, 1);
        userDbHelper.initialize(this);
        HashMap<Integer, String> hm = new HashMap<Integer, String>();
        ids = new ArrayList<Integer>();
        images = new ArrayList<String>();

        /*
         * Card ID - Getting the right card
         */
        final int cardId = getIntent().getIntExtra("card_id", 0);
        Log.i("Card Id ", "Card Id CARDS : " + cardId);

        /*
         * Collection ID - Getting the right Collection Cards
         */
        final int collId = getIntent().getIntExtra("collection_id", 0);
        Log.i("Collection Id ", "Collection Id : " + collId);

        // Position of Clicked Item
        int position = getIntent().getIntExtra("position", 0);
        Log.i("position", "position : " + position);

        /*
         * Indicating which activity is opening this one for selecting the right
         * cards from Database. Value 1 : All Stampii - listing all owned
         * stampii cards Value 2 : Owned Stampii - listing all owned stampii
         * cards Value 3 : Repeated Stampii - listing only repeated stampii
         * cards Value 4 : Last Acquired - listing the last acquired stampii
         * cards
         */
        int activity = getIntent().getIntExtra("activity", 1);
        Log.d("", "activity : " + activity);

        /*
         * Indicating the Sort Type : Value 1 : Sort by Tags Value 2 : Sort by
         * Categories Value 3 : Sort by Date
         * By Default the sort type is by Tags! (Bad-Ass Muthaphucka)
         */
        int sort = getIntent().getIntExtra("sort_type", 1);
        Log.d("", "sort type : " + sort);

        int extra = getIntent().getIntExtra("extra", 0);
        Log.d("", "extra : " + extra);

        switch (activity) {
        case 1: // All Stampii
                cardSQL = getOwnedCards(sort, collId, extra);
            break;
        case 2: // Owned Stampii
                cardSQL = getOwnedCards(sort, collId, extra);
            break;
        case 3: // Repeated Stampii
                cardSQL = getRepeatedCards(sort, collId, extra);
            break;
        case 4: // Last Acquired
                cardSQL = getOwnedCards(sort, collId, extra);
            break;
        }

        Cursor cards = userDbHelper.executeSQLQuery(cardSQL);
        if (cards.getCount() == 0) {
            cards.close();
        } else if (cards.getCount() > 0) {
            for (cards.move(0); cards.moveToNext(); cards.isAfterLast()) {
                cardsId = Integer.parseInt(cards.getString(cards
                        .getColumnIndex("objectId")));

                card = Integer.parseInt(cards.getString(cards
                        .getColumnIndex("cardId")));

                String path = Environment.getExternalStorageDirectory()
                        + "/.Stampii/MediaCard/" + cardsId + ".png";
                ids.add(card);
                hm.put(cardsId, path);

                path = hm.get(cardsId);
                images.add(path);
            }
        }

        Button back = (Button) findViewById(R.id.back_button);
        back.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                finish();
            }
        });

        viewFlow = (ViewFlow) findViewById(R.id.viewflow);
        viewFlow.setAdapter(new ImageAdapter(this, images), position);

        ImageButton prevBtn = (ImageButton) findViewById(R.id.previous_button);
        prevBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                indexxx = viewFlow.getSelectedItemPosition() - 1;
                if (indexxx >= 0) {
                    viewFlow.setAdapter(new ImageAdapter(Cards.this, images),
                            indexxx);
                    viewFlow.setSelectedItemPosition(indexxx);
                    Log.i("indexxx", "indexxx : " + indexxx);
                }
            }
        });

        ImageButton nextBtn = (ImageButton) findViewById(R.id.next_button);
        nextBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                indexxx = viewFlow.getSelectedItemPosition() + 1;
                if (indexxx < images.size()) {
                    viewFlow.setAdapter(new ImageAdapter(Cards.this, images),
                            indexxx);
                    viewFlow.setSelectedItemPosition(indexxx);
                    Log.i("indexxx", "indexxx : " + indexxx);
                }
            }
        });

        Button info = (Button) findViewById(R.id.info_button);
        info.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Cards.this, SingleCardInfo.class);
                intent.putExtra("card_id",
                        ids.get(viewFlow.getSelectedItemPosition()));
                intent.putExtra("collection_id", collId);
                startActivity(intent);
            }
        });
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        viewFlow.onConfigurationChanged(newConfig);
    }

    public String getOwnedCards(int sort, int collId, int extra) {
        String sql = "";
        switch (sort) {
        case 1: // Sort by Tags
            if (extra != 0)
                sql = "SELECT DISTINCT cm.cardId, cm.objectId "
                        + "FROM cardmedias AS cm " + "INNER JOIN cards AS cd "
                        + "ON (cm.cardId = cd.objectId) "
                        + "INNER JOIN cardtags AS ct "
                        + "ON (cd.objectId = ct.cardId) "
                        + "INNER JOIn tags AS tg "
                        + "ON (tg.objectId = ct.tagId) "
                        + "WHERE cd.collectionId=" + collId
                        + " AND cm.mediaType=" + mediaType
                        + " AND tg.objectId=" + extra;
            else if (extra == 0)
                sql = "SELECT DISTINCT cm.cardId, cm.objectId "
                        + "FROM cardmedias AS cm " + "INNER JOIN cards AS cd "
                        + "ON (cm.cardId = cd.objectId) "
                        + "INNER JOIN cardtags AS ct "
                        + "ON (cd.objectId = ct.cardId) "
                        + "INNER JOIn tags AS tg "
                        + "ON (tg.objectId = ct.tagId) "
                        + "WHERE cd.collectionId=" + collId
                        + " AND cm.mediaType=" + mediaType;
            break;
        case 2: // Sort by Categories
            if (extra != 0)
                sql = "SELECT DISTINCT cm.cardId, cm.objectId "
                    + "FROM cardmedias AS cm " + "INNER JOIN cards AS cd "
                    + "ON (cm.cardId = cd.objectId) "
                    + "INNER JOIN categories AS cats "
                    + "ON (cd.categoryId = cats.objectId) "
                    + "WHERE cd.collectionId=" + collId
                    + " AND cm.mediaType=" + mediaType
                    + " AND cats.objectId=" + extra;
            else if (extra == 0)
                sql = "SELECT DISTINCT cm.cardId, cm.objectId "
                    + "FROM cardmedias AS cm " + "INNER JOIN cards AS cd "
                    + "ON (cm.cardId = cd.objectId) "
                    + "INNER JOIN categories AS cats "
                    + "ON (cd.categoryId = cats.objectId) "
                    + "WHERE cd.collectionId=" + collId
                    + " AND cm.mediaType=" + mediaType;
            break;
        case 3: // Sort by Date
            String ASCDESC = getIntent().getStringExtra("ascdesc");
            if (extra != 0)
                sql = "SELECT DISTINCT cm.cardId, cm.objectId "
                    + "FROM cardmedias AS cm " + "INNER JOIN cards AS cd "
                    + "ON (cm.cardId = cd.objectId) "
                    + "INNER JOIN categories AS cats "
                    + "ON (cd.categoryId = cats.objectId) "
                    + "WHERE cd.collectionId=" + collId
                    + " AND cm.mediaType=" + mediaType
                    + " ORDER BY cd.dateCreated " + ASCDESC;
            else if (extra == 0)
                sql = "SELECT DISTINCT cm.cardId, cm.objectId "
                    + "FROM cardmedias AS cm " + "INNER JOIN cards AS cd "
                    + "ON (cm.cardId = cd.objectId) "
                    + "INNER JOIN categories AS cats "
                    + "ON (cd.categoryId = cats.objectId) "
                    + "WHERE cd.collectionId=" + collId
                    + " AND cm.mediaType=" + mediaType;
            break;
        }
        return sql;
    }

    public String getRepeatedCards(int sort, int collId, int extra){
        String sql="";
        switch (sort) {
        case 1: // Sort by Tags
            if (extra != 0)
                sql = "SELECT DISTINCT cm.cardId, cm.objectId "
                        + "FROM cardmedias AS cm " + "INNER JOIN cards AS cd "
                        + "ON (cm.cardId = cd.objectId) "
                        + "INNER JOIN cardtags AS ct "
                        + "ON (cd.objectId = ct.cardId) "
                        + "INNER JOIn tags AS tg "
                        + "ON (tg.objectId = ct.tagId) "
                        + "WHERE cd.collectionId=" + collId
                        + " AND cd.repeatsCount>1"
                        + " AND cm.mediaType=" + mediaType
                        + " AND tg.objectId=" + extra;
            else if (extra == 0)
                sql = "SELECT DISTINCT cm.cardId, cm.objectId "
                        + "FROM cardmedias AS cm " + "INNER JOIN cards AS cd "
                        + "ON (cm.cardId = cd.objectId) "
                        + "INNER JOIN cardtags AS ct "
                        + "ON (cd.objectId = ct.cardId) "
                        + "INNER JOIn tags AS tg "
                        + "ON (tg.objectId = ct.tagId) "
                        + "WHERE cd.collectionId=" + collId
                        + " AND cd.repeatsCount>1"
                        + " AND cm.mediaType=" + mediaType;
            break;
        case 2: // Sort by Categories
            if (extra != 0)
                sql = "SELECT DISTINCT cm.cardId, cm.objectId "
                    + "FROM cardmedias AS cm " + "INNER JOIN cards AS cd "
                    + "ON (cm.cardId = cd.objectId) "
                    + "INNER JOIN categories AS cats "
                    + "ON (cd.categoryId = cats.objectId) "
                    + "WHERE cd.collectionId=" + collId
                    + " AND cd.repeatsCount>1"
                    + " AND cm.mediaType=" + mediaType
                    + " AND cats.objectId=" + extra;
            else if (extra == 0)
                sql = "SELECT DISTINCT cm.cardId, cm.objectId "
                    + "FROM cardmedias AS cm " + "INNER JOIN cards AS cd "
                    + "ON (cm.cardId = cd.objectId) "
                    + "INNER JOIN categories AS cats "
                    + "ON (cd.categoryId = cats.objectId) "
                    + "WHERE cd.collectionId=" + collId
                    + " AND cd.repeatsCount>1"
                    + " AND cm.mediaType=" + mediaType;
            break;
        case 3: // Sort by Date
            String ASCDESC = getIntent().getStringExtra("ascdesc");
            Log.d("","ASCDESC : "+ASCDESC);
            if (extra != 0)
                sql = "SELECT DISTINCT cm.cardId, cm.objectId "
                    + "FROM cardmedias AS cm " + "INNER JOIN cards AS cd "
                    + "ON (cm.cardId = cd.objectId) "
                    + "INNER JOIN categories AS cats "
                    + "ON (cd.categoryId = cats.objectId) "
                    + "WHERE cd.collectionId=" + collId
                    + " AND cd.repeatsCount>1"
                    + " AND cm.mediaType=" + mediaType
                    + " ORDER BY cd.dateCreated " + ASCDESC;
            else if (extra == 0)
                sql = "SELECT DISTINCT cm.cardId, cm.objectId "
                    + "FROM cardmedias AS cm " + "INNER JOIN cards AS cd "
                    + "ON (cm.cardId = cd.objectId) "
                    + "INNER JOIN categories AS cats "
                    + "ON (cd.categoryId = cats.objectId) "
                    + "WHERE cd.collectionId=" + collId
                    + " AND cd.repeatsCount>1"
                    + " AND cm.mediaType=" + mediaType;
            break;
        }
        return sql;
    }

}