Java 在gridview中添加开关盒后,应用程序崩溃

Java 在gridview中添加开关盒后,应用程序崩溃,java,android,gridview,onclicklistener,Java,Android,Gridview,Onclicklistener,当我试图在自定义页面适配器中添加开关盒时,遇到了问题。如果单击gridview的一项,我可以举杯。但当我试图用onClick添加新活动时,应用程序崩溃了。如果单击gridview项,我想显示新活动。关于这个问题我已经搜索和研究过了,但我找不到解决方案。我想我的问题与开关箱有关。我正在学习安卓。请帮帮我 CustomAdapter.java MainActivity.java 这不是设置McClick侦听器的方法。若你们想设置点击整个项目,你们应该使用McClickListener。从getVie

当我试图在自定义页面适配器中添加开关盒时,遇到了问题。如果单击gridview的一项,我可以举杯。但当我试图用onClick添加新活动时,应用程序崩溃了。如果单击gridview项,我想显示新活动。关于这个问题我已经搜索和研究过了,但我找不到解决方案。我想我的问题与开关箱有关。我正在学习安卓。请帮帮我

CustomAdapter.java

MainActivity.java


这不是设置McClick侦听器的方法。若你们想设置点击整个项目,你们应该使用McClickListener。从getView中删除OnClickListener,并使用OnItemClickListener,如下所示

 GridView gridview = (GridView) findViewById(R.id.customgrid);
    gridview.setAdapter(new CustomAdapter(this, osNameList, osImages));
    gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            switch(position){
                case 0:
                    Intent a = new Intent(v.getContext(), FirstActivity.class);
                    startActivity(a);
                    break;
                case 1:
                    Intent b = new Intent(v.getContext(), DefaultActivity.class);
                    startActivity(b);
                    break;
                default:
                    break;
            }

        } });

注意:-在getView中的OnClickListener中不需要开关,因为它一次只调用一个位置

您的清单中是否声明了FirstActivity和DefaultActivity?添加崩溃log@BenP. 非常感谢你。实际上,问题出在清单文件中。非常感谢。虽然我知道问题已经解决了。我已经写了,所以把它贴出来。看一看
import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;

public class MainActivity extends Activity {

    GridView gridview;

    public static String[] osNameList = {
            "Android",
            "iOS",
            "Linux",
    };
    public static int[] osImages = {
            R.drawable.alpha,
            R.drawable.beta,
            R.drawable.cupcake,
};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        gridview = (GridView) findViewById(R.id.customgrid);
        gridview.setAdapter(new CustomAdapter(this, osNameList, osImages));
    }
}
 GridView gridview = (GridView) findViewById(R.id.customgrid);
    gridview.setAdapter(new CustomAdapter(this, osNameList, osImages));
    gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            switch(position){
                case 0:
                    Intent a = new Intent(v.getContext(), FirstActivity.class);
                    startActivity(a);
                    break;
                case 1:
                    Intent b = new Intent(v.getContext(), DefaultActivity.class);
                    startActivity(b);
                    break;
                default:
                    break;
            }

        } });