将一行从一个列表视图发送到另一个列表视图

2024-01-25

我在同一个活动中有两个列表视图,其中一个有元素,另一个是空的,我想通过长按将任何元素发送到第二个 lisview,我希望元素执行与第一个列表视图中相同的操作(打开一项活动)这是我的代码,请告诉我该怎么做:

MainActivity.java


import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;


public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";
    DB_Sqlite db = new DB_Sqlite(this);
    ListView listView1;
    ListView listView;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         listView = (ListView) findViewById(R.id.list_view);
         listView1 = (ListView) findViewById(R.id.list_view1);

        final ArrayList arrayList = new ArrayList<String>();
        arrayList.add("Complex Complex");
        arrayList.add("Trix Complex");
        arrayList.add("Kingdoms");
        final ArrayList arrayList1 = new ArrayList<String>();
        final ListAdapter adapter = new ArrayAdapter<>(MainActivity.this,android.R.layout.simple_list_item_1,arrayList);
        listView.setAdapter(adapter);




        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                if (position == 0){
                    Intent intent = new Intent(MainActivity.this,cc.class);
                    startActivity(intent);
                }
                if (position == 1){
                    Intent intent = new Intent(MainActivity.this,tc.class);
                    startActivity(intent);
                }
                if (position == 2){
                    Intent intent = new Intent(MainActivity.this,k.class);
                    startActivity(intent);
                }


            }
        });
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
    @Override
    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long l) {
        if (position == 0) {

            Boolean result = db.insertData((String) arrayList.get(position));
            if (result == true){
                Toast.makeText(MainActivity.this,"Added To Favorite",Toast.LENGTH_SHORT).show();
            }else{
                Toast.makeText(MainActivity.this, "Already Exist", Toast.LENGTH_SHORT).show();
            }

        }
        if (position == 1){
            Toast.makeText(MainActivity.this, "TC Added to Favorites", Toast.LENGTH_SHORT).show();
        }
        if (position == 2){
            Toast.makeText(MainActivity.this, "K Added to Favorites", Toast.LENGTH_SHORT).show();
        }
        return true;
    }

});


}
public void showData(){
    ArrayList arrayList1 = db.getAllrecord();
    final ListAdapter adapter1 = new ArrayAdapter<>(MainActivity.this,android.R.layout.simple_list_item_1,arrayList1);
    listView1.setAdapter(adapter1);
}
    }

this is what i have done so far please help, thank you very much.
DB_Sqlite.java


import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

import java.util.ArrayList;

public class DB_Sqlite extends SQLiteOpenHelper {
    public static final String BDname = "data.db";
    public DB_Sqlite(@Nullable Context context) {
        super(context, BDname, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table mytable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {
        db.execSQL("DROP TABLE IF EXISTS mytable");
        onCreate(db);

    }
    public boolean insertData(String name){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put("name", name);
        long result = db.insert("mytable",null, contentValues);
        if (result == -1)
            return false;
        else
            return true;
    }
    public ArrayList getAllrecord(){
        ArrayList arrayList = new ArrayList();
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor res = db.rawQuery("select * from mytable",null);
        res.moveToFirst();
        while (res.isAfterLast()==false){
            String t1 = res.getString(0);
            arrayList.add(t1+" - ");
            res.moveToNext();
        }
        return arrayList;
    }
}
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="#f2f2f2"
    android:orientation="vertical">


    <TextView
        android:id="@+id/tv1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="25sp"
        android:textColor="@color/colorAccent"
        android:text="Favorite List:">

    </TextView>

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/list_view1"
        android:layout_below="@+id/tv1"
        android:divider="@color/colorPrimary"
        android:dividerHeight="1dp"
        android:layout_weight="1">
    </ListView>




    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="25sp"
        android:textColor="@color/colorAccent"
        android:layout_weight="0"
        android:text="Game List:"
        android:layout_below="@+id/list_view1">

    </TextView>

    <ListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tv"
        android:layout_weight="2"
        android:divider="@color/colorPrimary"
        android:dividerHeight="1dp"
        android:layout_alignParentBottom="true"
        >

    </ListView>



</LinearLayout>

这就是我到目前为止所做的,请帮助我,提前谢谢您。


以下应该执行您想要的操作(假设发送到意味着移动到):-

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";
    DB_Sqlite db = new DB_Sqlite(this);
    ListView listView1;
    ListView listView;
    ArrayAdapter<String> adapter, adapter1; /* changed to use ArrayAdapter */
    ArrayList<String> arrayList,arrayList1; /* moved (not necessary) */



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.list_view);
        listView1 = (ListView) findViewById(R.id.list_view1);

        arrayList = new ArrayList<String>();
        arrayList.add("Complex Complex");
        arrayList.add("Trix Complex");
        arrayList.add("Kingdoms");
        arrayList1 = new ArrayList<String>();
        adapter = new ArrayAdapter<>(MainActivity.this,android.R.layout.simple_list_item_1,arrayList);
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                if (position == 0){
                    Intent intent = new Intent(MainActivity.this,cc.class);
                    startActivity(intent);
                }
                if (position == 1){
                    Intent intent = new Intent(MainActivity.this,tc.class);
                    startActivity(intent);
                }
                if (position == 2){
                    Intent intent = new Intent(MainActivity.this,k.class);
                    startActivity(intent);
                }


            }
        });
        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long l) {
                if (position == 0) {

                    Boolean result = db.insertData((String) arrayList.get(position));
                    if (result == true){
                        Toast.makeText(MainActivity.this,"Added To Favorite",Toast.LENGTH_SHORT).show();
                    }else{
                        Toast.makeText(MainActivity.this, "Already Exist", Toast.LENGTH_SHORT).show();
                    }

                }
                if (position == 1){
                    Toast.makeText(MainActivity.this, "TC Added to Favorites", Toast.LENGTH_SHORT).show();
                }
                if (position == 2){
                    Toast.makeText(MainActivity.this, "K Added to Favorites", Toast.LENGTH_SHORT).show();
                }
                /*<<<<< the core code that was added >>>>>*/
                arrayList1.add(arrayList.get(position));
                arrayList.remove(position);
                adapter1.notifyDataSetChanged();
                adapter.notifyDataSetChanged();
                return true;
            }

        });

        /* added */
        adapter1 = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,arrayList1);
        listView1.setAdapter(adapter1);

    }
    public void showData(){
        ArrayList arrayList1 = db.getAllrecord();
        final ListAdapter adapter1 = new ArrayAdapter<>(MainActivity.this,android.R.layout.simple_list_item_1,arrayList1);
        listView1.setAdapter(adapter1);
    }
}

Result

  • 第一个 ListView 具有蓝色背景,另一个 ListView 具有绿色背景,以便区分彼此。

刚开始时:-

长按 Trix Complex 后:-

额外的

重新评论:-

@AhmedZaqout 大致您需要做的是a)添加一列作为 哪个列表的指示符,例如favourite_flag 整数 默认值 0 b) 用初始值(Kingdons 等)填充数据库,而不是定义 ArrayList 中的值。当活动开始时提取值 根据指标栏分为2个列表。如果项目在第一个 长按更新行以设置指示器,然后刷新 列表。

然后考虑以下事项:-

DB_SQlite.java

public class DB_Sqlite extends SQLiteOpenHelper {
    public static final String BDname = "data.db";
    public static final int DBVERSION = 1; /*<<<<< ADDED BUT NOT NEEDED */
    public static final String TABLE_FAVOURITES = "mytable";

    public static final String FAVOURITES_COL_ID = BaseColumns._ID; /*<<<< use the Android stock ID name*/
    public static final String FAVOURITES_COL_NAME = "name";
    public static final String FAVOURITES_COL_FAVOURITEFLAG = "favourite_flag"; /*<<<<< NEW COLUMN */

    public DB_Sqlite(@Nullable Context context) {
        super(context, BDname, null, DBVERSION /*<<<<< used constant above */);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table " + TABLE_FAVOURITES + " (" +
                FAVOURITES_COL_ID + " INTEGER PRIMARY KEY," + /*<<<<< AUTOINCREMENT NOT NEEDED AND IS INEFFICIENT */
                FAVOURITES_COL_NAME + " TEXT, " +
                FAVOURITES_COL_FAVOURITEFLAG + " INTEGER DEFAULT 0" + /*<<<<< COLUMN ADDED */
                ")");
        /*<<<<< Add initial data */
        /* Note indicator will set to non_favourite i.e. 0 */
        ContentValues cv = new ContentValues();
        cv.put(FAVOURITES_COL_NAME,"Complex Complex");
        db.insert(TABLE_FAVOURITES,null,cv);
        cv.clear();
        cv.put(FAVOURITES_COL_NAME,"Trix Complex");
        db.insert(TABLE_FAVOURITES,null,cv);
        cv.clear();
        cv.put(FAVOURITES_COL_NAME,"Kingdoms");
        db.insert(TABLE_FAVOURITES,null,cv);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_FAVOURITES);
        onCreate(db);

    }
    public boolean insertData(String name){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(FAVOURITES_COL_NAME, name);
        long result = db.insert(TABLE_FAVOURITES,null, contentValues);
        if (result == -1)
            return false;
        else
            return true;
    }

    /*<<<<< ADDEDD */
    public Cursor getFavouriteRows(boolean favourites /* true to return favourites (listView 2), false to return non-favourites (ListView 1) */) {
        SQLiteDatabase db = this.getWritableDatabase();
        String whereclause = FAVOURITES_COL_FAVOURITEFLAG + "=?";
        String compare = "<1";
        if (favourites) {
            compare =">0";
        }

        return db.query(
                TABLE_FAVOURITES,null,
                FAVOURITES_COL_FAVOURITEFLAG + compare,
                null,null,null,null
        );
    }

    /*<<<<< ADDEDD */
    private int setFavourite(long id, boolean favourite_flag) {
        SQLiteDatabase db = this.getWritableDatabase();
        String whereclause = FAVOURITES_COL_ID + "=?";
        String[] whereargs = new String[]{String.valueOf(id)};
        ContentValues cv = new ContentValues();
        cv.put(FAVOURITES_COL_FAVOURITEFLAG,favourite_flag);
        return db.update(TABLE_FAVOURITES,cv,whereclause,whereargs);
    }

    /*<<<<< ADDEDD */
    public int setAsFavourite(long id) {
        return setFavourite(id,true);
    }

    /*<<<<< ADDEDD */
    public int setAsNotFavourite(long id) {
        return setFavourite(id, false);
    }

    /* Will be unused */
    public ArrayList getAllrecord(){
        ArrayList arrayList = new ArrayList();
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor res = db.rawQuery("select * from mytable",null);
        res.moveToFirst();
        while (res.isAfterLast()==false){
            String t1 = res.getString(0);
            arrayList.add(t1+" - ");
            res.moveToNext();
        }
        return arrayList;
    }
}

MainActivity.java

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";
    DB_Sqlite db = new DB_Sqlite(this);
    ListView listView1, listView;
    //ArrayAdapter<String> adapter, adapter1; /*<<<<< commented out as unused */
    //ArrayList<String> arrayList,arrayList1; /*<<<<< commented out as unused */
    Cursor non_favourites_cursor, favourites_cursor; //<<<<< Added as goind to use Cursor Adapter */
    SimpleCursorAdapter non_favourites_adapter, favourites_adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.list_view);
        listView1 = (ListView) findViewById(R.id.list_view1);
        manageBothListViews();

        //arrayList = new ArrayList<String>();
        //arrayList.add("Complex Complex");
        //arrayList.add("Trix Complex");
        //arrayList.add("Kingdoms");
        //arrayList1 = new ArrayList<String>();
        //adapter = new ArrayAdapter<>(MainActivity.this,android.R.layout.simple_list_item_1,arrayList);
        //listView.setAdapter(adapter);

        /*
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                if (position == 0){
                    Intent intent = new Intent(MainActivity.this,cc.class);
                    startActivity(intent);
                }
                if (position == 1){
                    Intent intent = new Intent(MainActivity.this,tc.class);
                    startActivity(intent);
                }
                if (position == 2){
                    Intent intent = new Intent(MainActivity.this,k.class);
                    startActivity(intent);
                }


            }
        });
        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long l) {
                if (position == 0) {

                    Boolean result = db.insertData((String) arrayList.get(position));
                    if (result == true){
                        Toast.makeText(MainActivity.this,"Added To Favorite",Toast.LENGTH_SHORT).show();
                    }else{
                        Toast.makeText(MainActivity.this, "Already Exist", Toast.LENGTH_SHORT).show();
                    }

                }
                if (position == 1){
                    Toast.makeText(MainActivity.this, "TC Added to Favorites", Toast.LENGTH_SHORT).show();
                }
                if (position == 2){
                    Toast.makeText(MainActivity.this, "K Added to Favorites", Toast.LENGTH_SHORT).show();
                }
                arrayList1.add(arrayList.get(position));
                arrayList.remove(position);
                adapter1.notifyDataSetChanged();
                adapter.notifyDataSetChanged();
                return true;
            }

        });

        adapter1 = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,arrayList1);
        listView1.setAdapter(adapter1);
        */

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        non_favourites_cursor.close();
        favourites_cursor.close();
    }

    @Override
    protected void onResume() {
        super.onResume();
        manageBothListViews();
    }

    public void showData(){
        ArrayList arrayList1 = db.getAllrecord();
        final ListAdapter adapter1 = new ArrayAdapter<>(MainActivity.this,android.R.layout.simple_list_item_1,arrayList1);
        listView1.setAdapter(adapter1);
    }

    private void manageBothListViews() {
        manageNonFavouritesListView();
        manageFavouritesListView();
    }

    private void manageNonFavouritesListView() {
        non_favourites_cursor = db.getFavouriteRows(false);
        if (non_favourites_adapter == null) {
            non_favourites_adapter = new SimpleCursorAdapter(
                    this,
                    android.R.layout.simple_list_item_1,
                    non_favourites_cursor,
                    new String[]{DB_Sqlite.FAVOURITES_COL_NAME},
                    new int[]{android.R.id.text1},
                    0
            );
            listView.setAdapter(non_favourites_adapter);
            setListViewHandler(listView,false);
        } else {
            non_favourites_adapter.swapCursor(non_favourites_cursor);
        }
    }
    private void manageFavouritesListView() {
        favourites_cursor = db.getFavouriteRows(true);
        if (favourites_adapter == null) {
            favourites_adapter = new SimpleCursorAdapter(
                    this,
                    android.R.layout.simple_list_item_1,
                    favourites_cursor,
                    new String[]{DB_Sqlite.FAVOURITES_COL_NAME},
                    new int[]{android.R.id.text1},
                    0
            );
            listView1.setAdapter(favourites_adapter);
            setListViewHandler(listView1,true);
        } else {
            favourites_adapter.swapCursor(favourites_cursor);
        }
    }

    private void setListViewHandler(ListView lv,  boolean favourite_flag) {
        if (!favourite_flag) {
            lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    if (non_favourites_cursor.getString(non_favourites_cursor.getColumnIndex(DB_Sqlite.FAVOURITES_COL_NAME)).equals("Complex Complex")) {
                        Intent intent = new Intent(MainActivity.this,cc.class);
                        startActivity(intent);
                    }
                    if (non_favourites_cursor.getString(non_favourites_cursor.getColumnIndex(DB_Sqlite.FAVOURITES_COL_NAME)).equals("Trix Complex")) {
                        Intent intent = new Intent(MainActivity.this,tc.class);
                        startActivity(intent);
                    }
                    if (non_favourites_cursor.getString(non_favourites_cursor.getColumnIndex(DB_Sqlite.FAVOURITES_COL_NAME)).equals("Kingdoms")){
                        Intent intent = new Intent(MainActivity.this,k.class);
                        startActivity(intent);
                    }
                }
            });
            lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
                @Override
                public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                    db.setAsFavourite(id);
                    manageBothListViews();
                    return true;
                }
            });
        } else {
            lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    if (favourites_cursor.getString(favourites_cursor.getColumnIndex(DB_Sqlite.FAVOURITES_COL_NAME)).equals("Complex Complex")) {
                        Intent intent = new Intent(MainActivity.this,cc.class);
                        startActivity(intent);
                    }
                    if (favourites_cursor.getString(favourites_cursor.getColumnIndex(DB_Sqlite.FAVOURITES_COL_NAME)).equals("Trix Complex")) {
                        Intent intent = new Intent(MainActivity.this,tc.class);
                        startActivity(intent);
                    }
                    if (favourites_cursor.getString(favourites_cursor.getColumnIndex(DB_Sqlite.FAVOURITES_COL_NAME)).equals("Kingdoms")){
                        Intent intent = new Intent(MainActivity.this,k.class);
                        startActivity(intent);
                    }
                }
            });
        }
    }
}
  • 看评论
  • 这使用 CursorAdapter 而不是 ArrayAdapter。
  • 这使用创建数据库时存储在数据库中的值(名称王国等)。因此,您应该在运行更改后的代码之前卸载应用程序或删除应用程序的数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将一行从一个列表视图发送到另一个列表视图 的相关文章

随机推荐

  • 获取参数的调用变量名

    关于这个问题从调用方法中获取参数名称 https stackoverflow com questions 15205457 get the name of parameters from a calling method and 在 C 中
  • R 中没有重复的 Left_Join

    我想做一种vlookup 正如您所知 Excel vlookup 函数从数据中获取第一个值 另一方面 left join 函数的工作原理类似 但是 当第一个数据在查找值上不唯一时 left join 函数会重复 de 值 我想对 Excel
  • gradle 将外部插件的 jar 存储在哪里?

    我正在使用一个名为 jsonschema2pojo 的外部 gradle 插件 为此 我在 build gradle 文件中添加了以下代码 我可以成功使用该插件 但我找不到必须下载并存储在某处的 jar 在哪里可以找到为外部插件下载的 ja
  • 如何仅在 bash 中存在脚本时才执行该脚本?

    我想知道是否有一种更简单的方法可以仅在该脚本存在时才在 bash 中执行该脚本 我想要的相当于 if x name then name fi or x name name 我正在寻找的是类似的东西 exec if exist name 这消
  • Python-如何使用 re 来匹配整个字符串[重复]

    这个问题在这里已经有答案了 我正在验证用户输入的文本 以便它只接受字母而不接受数字 到目前为止 当我输入数字 例如 56 时 我的代码工作正常 它警告我应该只输入字母 而当我输入字母时 它不会返回任何内容 就像它应该做的那样 我的问题是 当
  • 使用YouTube Data API时如何避免视频信息获取的遗漏?

    假设 我想要实现的目标 我想使用YouTube Data API V3来无遗漏地获取视频ID 并找出问题的原因是在代码中还是在YouTube API端 的视频设置中 Problem 以下代码用于从YouTube Data API获取视频信息
  • “尝试向 Flutter 发送平台消息,但 FlutterJNI 与原生 C++ 分离。”启动后台服务并关闭应用程序后

    我正在尝试构建一个使用某些包作为位置的应用程序 https pub dev packages location https pub dev packages location 和指南针 https pub dev packages flut
  • 为什么采用一种定义规则,而不是一种声明规则?

    我已阅读以下材料 https www wikiwand com en One Definition Rule https www wikiwand com en One Definition Rule http en cppreferenc
  • 如何自动启用网络位置提供程序

    我正在通过网络获取纬度和经度 它给了我纬度和经度 但是如果我的NETWORK LOCATION PROVIDER未选中 它永远不会向我提供当前位置的纬度和经度 我想要的是 我怎样才能启用NETWORK LOCATION PROVIDER在不
  • Hibernate Spatial - “遇到无效的字节序标志值”异常

    我正在尝试在 PostgreSQL 9 3 上的 Hibernate Spatial 4 0 中运行一个简单的查询 我的表中有许多带有纬度 经度值的对象 并且我正在尝试查询位于特定纬度 经度的给定半径内的对象 几何值似乎没有任何问题地被持久
  • 如何在pygame中检测两个矩形物体或图像之间的碰撞

    我正在制作一款游戏 玩家必须使用碗来接住掉落的物品 我有一些列表中的项目图像和一个用于接住项目的碗的图像 物品会继续下落 如果到达边界 下边缘 就会重置到屏幕顶部 我完成了这个逻辑 允许物品掉落 但我不知道如何检测碗和物品之间何时发生碰撞
  • 在 PyAudio 模块中安装时出现错误

    经过无数次尝试后 我仍然无法安装 PyAudio 而不会出现此错误 我尝试过使用许多方法 包括 pipwin 但它没有被识别为真正的函数 如何安装 PyAudio ERROR Command errored out with exit st
  • 检查提交消息中的特定字符串 - SVN Precommit Hook

    我期望 svn 提交消息中出现以下格式 描述 更改的一些描述 实体 变更请求编号 如果提交时的注释不遵循上述格式 则应抛出错误消息 这个想法是检查提交消息中的关键字符串 Description 和 Entity 我还在检查消息中是否存在评论
  • 为每个页面添加固定的页眉/页脚 jsPDF

    我在用jsPDF https github com MrRio jsPDF从我的网络应用程序的动态 HTML 内容生成 PDF 现在我正在尝试为这些 PDF 提供独特的布局 我想为 PDF 的每一页添加 页眉 和 页脚 jsPDF 会自动生
  • 为面向文档的数据库设计记录键 - 最佳实践

    我们的团队已经开始开发由 Couchbase DB 支持的应用程序 对于我们每个人来说 这都是第一次使用非 SQL 数据库 我们已经开始定义我们的实体 并采用 Couchbase 手册建议的使用 类型 前缀的做法 Entity A key
  • iOS - RestKit 并清除所有数据?

    我使用 RestKit 进行 Web 服务调用 缓存和 etag 我实现了自己的 coredata 模型和 ManagedObjects 用户退出后 我需要清除数据库中的所有数据 我能够成功删除 sqlite 文件并重新创建它 但我找不到清
  • SQLite查询进度条

    我在用sqlite来自 C 我想实现一个进度条 通知用户搜索的进度 Using sqlite3 progress handler http www sqlite org sessions c3ref progress handler htm
  • 实时音频流容器格式

    当我开始接收实时音频 无线电 流 例如 MP3 或 AAC 时 我认为接收到的数据不是原始比特流 即原始编码器输出 但它们总是被包装成某种容器格式 如果这个假设是正确的 那么我想我无法从流的任意位置开始流式传输 但我必须等待某个同步字节 是
  • 我可以在64位python中使用32位dll或exe吗?

    当我使用CDLL在32位python中调用32位dll时 它运行良好 但不幸的是 在我的64位win7操作系统中只安装了64位python 当调用它时 它不是一个有效的win32应用程序 我可以在64位python中使用32位dll或exe
  • 将一行从一个列表视图发送到另一个列表视图

    我在同一个活动中有两个列表视图 其中一个有元素 另一个是空的 我想通过长按将任何元素发送到第二个 lisview 我希望元素执行与第一个列表视图中相同的操作 打开一项活动 这是我的代码 请告诉我该怎么做 MainActivity java