Java 如何使用cardView在android中创建可刷卡和可点击卡?

Java 如何使用cardView在android中创建可刷卡和可点击卡?,java,android,android-layout,android-cardview,Java,Android,Android Layout,Android Cardview,我尝试使用,但无法修改它以创建单击功能 基本上,我想在单击卡片时使用animate(),但无法这样做 主要活动-- public类MainActivity扩展了AppCompatActivity{ 公共ArrayList al; 公共阵列适配器阵列适配器; 公共国际一级; @BindView(R.id.frame)SwipeFlingDapterView flingContainer; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCre

我尝试使用,但无法修改它以创建单击功能

基本上,我想在单击卡片时使用animate(),但无法这样做

主要活动--

public类MainActivity扩展了AppCompatActivity{
公共ArrayList al;
公共阵列适配器阵列适配器;
公共国际一级;
@BindView(R.id.frame)SwipeFlingDapterView flingContainer;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
把(这个)绑起来;
al=新的ArrayList();
al.添加(“php”);
al.添加(“c”);
al.添加(“python”);
al.添加(“java”);
al.添加(“html”);
添加(“c++”);
al.添加(“css”);
添加(“javascript”);
arrayAdapter=新的arrayAdapter(this,R.layout.item,R.id.helloText,al);
flingContainer.setAdapter(阵列适配器);
flingContainer.setFlingListener(新的SwipeFlingAdapterView.onFlingListener(){
@凌驾
public void removeFirstObjectInAdapter(){
//这是从适配器(/AdapterView)中删除对象的最简单方法
Log.d(“列表”,“删除对象!”);
al.移除(0);
arrayAdapter.notifyDataSetChanged();
}
@凌驾
public void onLeftCardExit(对象dataObject){
//在左边做点什么!
//您还可以访问原始对象。
//如果您想使用它,只需强制转换它(字符串)数据对象
MakeToos(MainActivity.this,“Left!”);
}
@凌驾
RightCardExit上的公共无效(对象dataObject){
MakeToos(MainActivity.this,“Right!”);
}
@凌驾
dapterabouttoempty上的公共void(int itemsInAdapter){
//在这里询问更多数据
al.add(“XML.concat(String.valueOf(i)));
arrayAdapter.notifyDataSetChanged();
日志d(“列表”、“通知”);
i++;
}
@凌驾
公共无效onScroll(浮动百分比){
View=flingContainer.getSelectedView();
view.findViewById(R.id.item\u swipe\u right\u indicator).setAlpha(scrollProgressPercent<0?-scrollProgressPercent:0);
view.findViewById(R.id.item\u swipe\u left\u indicator).setAlpha(scrollProgressPercent>0?scrollProgressPercent:0);
}
});
//**可选地添加一个侦听器,以满足此需求**
flingContainer.setOnItemClickListener(新的SwipeFlingAdapterView.OnItemClickListener(){
@凌驾
单击公共对象(int itemPosition,Object dataObject){
ImageView img=findViewbyid(R.id.img);
img.animate().alpha(1f).setduration(2000);
}
});
}
静态void makeToast(上下文ctx,字符串s){
Toast.makeText(ctx,s,Toast.LENGTH_SHORT).show();
}
@OnClick(右标识)
公共无效权(){
/**
*手动触发正确的事件。
*/
flingContainer.getTopCardListener().selectRight();
}
@OnClick(右id左)
公共空间(左){
flingContainer.getTopCardListener().selectLeft();
}
}

请在问题中添加更多详细信息您确定要使用哪种语言/平台吗?
public class MainActivity extends AppCompatActivity {

    public ArrayList<String> al;
    public ArrayAdapter<String> arrayAdapter;
    public int i;

    @BindView(R.id.frame) SwipeFlingAdapterView flingContainer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);

        al = new ArrayList<>();
        al.add("php");
        al.add("c");
        al.add("python");
        al.add("java");
        al.add("html");
        al.add("c++");
        al.add("css");
        al.add("javascript");

        arrayAdapter = new ArrayAdapter<>(this, R.layout.item, R.id.helloText, al );

        flingContainer.setAdapter(arrayAdapter);
        flingContainer.setFlingListener(new SwipeFlingAdapterView.onFlingListener() {
            @Override
            public void removeFirstObjectInAdapter() {
                // this is the simplest way to delete an object from the Adapter (/AdapterView)
                Log.d("LIST", "removed object!");
                al.remove(0);
                arrayAdapter.notifyDataSetChanged();
            }

            @Override
            public void onLeftCardExit(Object dataObject) {
                //Do something on the left!
                //You also have access to the original object.
                //If you want to use it just cast it (String) dataObject
                makeToast(MainActivity.this, "Left!");
            }

            @Override
            public void onRightCardExit(Object dataObject) {
                makeToast(MainActivity.this, "Right!");
            }

            @Override
            public void onAdapterAboutToEmpty(int itemsInAdapter) {
                // Ask for more data here
                al.add("XML ".concat(String.valueOf(i)));
                arrayAdapter.notifyDataSetChanged();
                Log.d("LIST", "notified");
                i++;
            }

            @Override
            public void onScroll(float scrollProgressPercent) {
                View view = flingContainer.getSelectedView();
                view.findViewById(R.id.item_swipe_right_indicator).setAlpha(scrollProgressPercent < 0 ? -scrollProgressPercent : 0);
                view.findViewById(R.id.item_swipe_left_indicator).setAlpha(scrollProgressPercent > 0 ? scrollProgressPercent : 0);
            }
        });

        // **Optionally add an OnItemClickListener Need solution for this**
        flingContainer.setOnItemClickListener(new SwipeFlingAdapterView.OnItemClickListener() {
            @Override
            public void onItemClicked(int itemPosition, Object dataObject) {
ImageView img=findViewbyid(R.id.img);
img.animate().alpha(1f).setduration(2000);   
            }
        });
     }

    static void makeToast(Context ctx, String s){
        Toast.makeText(ctx, s, Toast.LENGTH_SHORT).show();
    }

    @OnClick(R.id.right)
    public void right() {
        /**
         * Trigger the right event manually.
         */
        flingContainer.getTopCardListener().selectRight();
    }

    @OnClick(R.id.left)
    public void left() {
        flingContainer.getTopCardListener().selectLeft();
    }

}