Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在运行时更新和删除GridView项_Java_Android_Gridview_Android Listview_Arraylist - Fatal编程技术网

Java 在运行时更新和删除GridView项

Java 在运行时更新和删除GridView项,java,android,gridview,android-listview,arraylist,Java,Android,Gridview,Android Listview,Arraylist,我正在开发一个项目,我比较两个项目的图像,因此,如果两个项目在单击后具有相同的图像,则应隐藏这些项目。下面给出了我的代码,这段代码遇到了一个问题。这是逻辑错误还是其他问题?我试图解决这个问题,但没有解决。。请引导我。。。这是我的主要活动。 MainActivity.java public class MainActivity extends Activity { Context ctx; int imagesArray[]; ImageAdapter adapter;

我正在开发一个项目,我比较两个项目的图像,因此,如果两个项目在单击后具有相同的图像,则应隐藏这些项目。下面给出了我的代码,这段代码遇到了一个问题。这是逻辑错误还是其他问题?我试图解决这个问题,但没有解决。。请引导我。。。这是我的主要活动。
MainActivity.java

public class MainActivity extends Activity {
    Context ctx;
    int imagesArray[];
    ImageAdapter adapter;
    List<Integer> pictures;
    boolean flage = false;
    GridView gridView;
    int save1, save2;
    int img1 = -1, img2 = -1;
    public int OriginalArray[] = { R.drawable.sample_0, R.drawable.sample_1,
            R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_0,
            R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3 };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final ImageView myimage = new ImageView(ctx);
        gridView = (GridView) findViewById(R.id.gv_memory);
        gridView.setAdapter(adapter);
         shuffleArray();

        gridView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1,
                    int position, long arg3) {
                // TODO Auto-generated method stub
                myimage.setImageResource(pictures.get(position));

                if (flage == false) {

                    img1 = pictures.get(position);
                    flage = true;

                } else if (flage == true) {

                    img2 = pictures.get(position);

                    checkResult();

                    flage = false;
                }
        }
            private void checkResult() {
                // TODO Auto-generated method stub

                if (img1 == img2) {
                    adapter.pictureList.remove(img1);
                    adapter.pictureList.remove(img2);
                    adapter.notifyDataSetChanged();
                    Toast.makeText(MainActivity.this, "Congratualatin !!!!",
                            Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(MainActivity.this, "Sorry!!!!",
                            Toast.LENGTH_LONG).show();

                }
            }
        });
    }

    private void shuffleArray() {
        // TODO Auto-generated method stub
        pictures = new ArrayList<Integer>();
        for (int index = 0; index < OriginalArray.length; index++) {
            pictures.add(OriginalArray[index]);
        }
        Collections.shuffle(pictures);

    }


}       
公共类MainActivity扩展活动{
上下文ctx;
int-imagesArray[];
图像适配器;
列出图片;
布尔鞭毛=假;
GridView;
int save1,save2;
int img1=-1,img2=-1;
public int OriginalArray[]={R.drawable.sample_0,R.drawable.sample_1,
R.drawable.sample_2,R.drawable.sample_3,R.drawable.sample_0,
R.drawable.sample_1,R.drawable.sample_2,R.drawable.sample_3};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
最终图像视图myimage=新图像视图(ctx);
gridView=(gridView)findViewById(R.id.gv_内存);
setAdapter(适配器);
shuffleArray();
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、,
整数位置,长arg3){
//TODO自动生成的方法存根
myimage.setImageResource(pictures.get(position));
if(flage==false){
img1=图片。获取(位置);
鞭毛=真;
}else if(flage==true){
img2=图片。获取(位置);
checkResult();
鞭毛=假;
}
}
私有无效检查结果(){
//TODO自动生成的方法存根
如果(img1==img2){
适配器。图片列表。移除(img1);
适配器。图片列表。移除(img2);
adapter.notifyDataSetChanged();
Toast.makeText(MainActivity.this,“恭喜拉丁语!!!!”,
Toast.LENGTH_LONG).show();
}否则{
Toast.makeText(MainActivity.this,“对不起!!!!”,
Toast.LENGTH_LONG).show();
}
}
});
}
私人空间{
//TODO自动生成的方法存根
图片=新的ArrayList();
for(int index=0;index
ImageAdapter.java

public class ImageAdapter extends BaseAdapter {

    private Context context;
    List<Integer> pictureList = new ArrayList<Integer>();

    public ImageAdapter(Context c) {
        context = c;
         for (int i = 0; i < 8; i++) {
             pictureList.add(R.drawable.question);
         }
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return (pictureList.size());
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return pictureList.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ImageView myimage = new ImageView(context);
        myimage.setImageResource(pictureList.get(position));
        myimage.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        myimage.setLayoutParams(new GridView.LayoutParams(70, 70));
        return myimage;
    }

}       
公共类ImageAdapter扩展了BaseAdapter{
私人语境;
List pictureList=new ArrayList();
公共图像适配器(上下文c){
上下文=c;
对于(int i=0;i<8;i++){
图片列表.add(R.drawable.question);
}
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回(pictureList.size());
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回pictureList.get(位置);
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
ImageView myimage=新的ImageView(上下文);
myimage.setImageResource(pictureList.get(position));
myimage.setScaleType(ImageView.ScaleType.CENTER_-INSIDE);
setLayoutParams(新的GridView.LayoutParams(70,70));
返回myimage;
}
}       
LogCat

03-14 06:09:03.793: D/dalvikvm(2877): GC_FOR_ALLOC freed 54K, 8% free 2771K/2996K, paused 111ms, total 117ms
03-14 06:09:03.802: I/dalvikvm-heap(2877): Grow heap (frag case) to 3.943MB for 1127536-byte allocation
03-14 06:09:03.922: D/dalvikvm(2877): GC_FOR_ALLOC freed 2K, 6% free 3870K/4100K, paused 118ms, total 118ms
03-14 06:09:03.962: D/AndroidRuntime(2877): Shutting down VM
03-14 06:09:03.962: W/dalvikvm(2877): threadid=1: thread exiting with uncaught exception (group=0x41465700)
03-14 06:09:03.972: E/AndroidRuntime(2877): FATAL EXCEPTION: main
03-14 06:09:03.972: E/AndroidRuntime(2877): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.memory/com.example.memory.MainActivity}: java.lang.NullPointerException
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.os.Looper.loop(Looper.java:137)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.app.ActivityThread.main(ActivityThread.java:5103)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at java.lang.reflect.Method.invokeNative(Native Method)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at java.lang.reflect.Method.invoke(Method.java:525)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at dalvik.system.NativeStart.main(Native Method)
03-14 06:09:03.972: E/AndroidRuntime(2877): Caused by: java.lang.NullPointerException
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.view.ViewConfiguration.get(ViewConfiguration.java:318)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.view.View.<init>(View.java:3264)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.widget.ImageView.<init>(ImageView.java:112)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at com.example.memory.MainActivity.onCreate(MainActivity.java:33)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.app.Activity.performCreate(Activity.java:5133)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-14 06:09:03.972: E/AndroidRuntime(2877):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
03-14 06:09:03.972: E/AndroidRuntime(2877):     ... 11 more
03-14 06:14:04.503: I/Process(2877): Sending signal. PID: 2877 SIG: 9
03-14 06:09:03.793:D/dalvikvm(2877):释放54K,8%释放2771K/2996K,暂停111ms,总计117ms
03-14 06:09:03.802:I/dalvikvm堆(2877):为1127536字节分配将堆(frag案例)增长到3.943MB
03-14 06:09:03.922:D/dalvikvm(2877):所有释放的2K,6%释放的3870K/4100K,暂停118ms,总计118ms
03-14 06:09:03.962:D/AndroidRuntime(2877):关闭虚拟机
03-14 06:09:03.962:W/dalvikvm(2877):threadid=1:线程退出时出现未捕获异常(组=0x41465700)
03-14 06:09:03.972:E/AndroidRuntime(2877):致命异常:主
03-14 06:09:03.972:E/AndroidRuntime(2877):java.lang.RuntimeException:无法启动活动组件信息{com.example.memory/com.example.memory.MainActivity}:java.lang.NullPointerException
03-14 06:09:03.972:E/AndroidRuntime(2877):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
03-14 06:09:03.972:E/AndroidRuntime(2877):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
03-14 06:09:03.972:E/AndroidRuntime(2877):在android.app.ActivityThread.access$600(ActivityThread.java:141)
03-14 06:09:03.972:E/AndroidRuntime(2877):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
03-14 06:09:03.972:E/AndroidRuntime(2877):在android.os.Handler.dispatchMessage(Handler.java:99)上
03-14 06:09:03.972:E/AndroidRuntime(2877):在android.os.Looper.loop(Looper.java:137)上
03-14 06:09:03.972:E/AndroidRuntime(2877):在android.app.ActivityThread.main(ActivityThread.java:5103)上
03-14 06:09:03.972:E/AndroidRuntime(2877):位于java.lang.reflect.Method.Invokenactive(本机方法)
03-14 06:09:03.972:E/AndroidRuntime(2877):位于java.lang.reflect.Method.invoke(Method.java:525)
03-14 06:09:03.972:E/AndroidRuntime(2877):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
03-14 06:09:03.972:E/AndroidRuntime(2877):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-14 06:09:03.972:E/AndroidRuntime(2877):在dalvik.system
final ImageView myimage = new ImageView(ctx);
gridView.setAdapter(adapter);
setContentView(R.layout.main);
final ImageView myimage = new ImageView(this); //this refers to Activity context
gridView = (GridView) findViewById(R.id.gv_memory);
adapter = new ImageAdapter(this)
gridView.setAdapter(adapter);