Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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 setOnItemClickListener不工作_Java_Android - Fatal编程技术网

Java gridview setOnItemClickListener不工作

Java gridview setOnItemClickListener不工作,java,android,Java,Android,我正在使用gridview显示数字, 我想要下一个活动, 当我点击任何数字 但是当我点击n号时,什么也没有发生,logcat中没有错误,也没有任何强制关闭 这是密码 public class CActivity extends Activity { GridView gridView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta

我正在使用gridview显示数字, 我想要下一个活动, 当我点击任何数字 但是当我点击n号时,什么也没有发生,logcat中没有错误,也没有任何强制关闭

这是密码

public class CActivity extends Activity 
{
  GridView gridView; 

   public void onCreate(Bundle savedInstanceState) 
            {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.cactivity);

             gridView.setOnItemClickListener(new OnItemClickListener()
            {
              public void onItemClick(AdapterView<?> parent, View v,
                int position, long id) {

            Intent myIntent = new Intent(getApplicationContext(), Abc.class);
            startActivity(myIntent);
            //finish();
        }
    });
}
       private void initComponent() 
       {
         gridView = (GridView) findViewById(R.id.month_gridView);
         }
如果我使用

  GridView gridView = (GridView) findViewById(R.id.month_gridView);
然后应用程序强制关闭

logcat

02-07 21:10:12.721: W/dalvikvm(719): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-07 21:10:12.780: E/AndroidRuntime(719): FATAL EXCEPTION: main
02-07 21:10:12.780: E/AndroidRuntime(719): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.indianic.demo.calendark/com.indianic.demo.calendark.CalendarActivity}: java.lang.NullPointerException
02-07 21:10:12.780: E/AndroidRuntime(719):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
02-07 21:10:12.780: E/AndroidRuntime(719):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
02-07 21:10:12.780: E/AndroidRuntime(719):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-07 21:10:12.780: E/AndroidRuntime(719):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
02-07 21:10:12.780: E/AndroidRuntime(719):  at android.os.Handler.dispatchMessage(Handler.java:99)
02-07 21:10:12.780: E/AndroidRuntime(719):  at android.os.Looper.loop(Looper.java:123)
02-07 21:10:12.780: E/AndroidRuntime(719):  at android.app.ActivityThread.main(ActivityThread.java:3683)
02-07 21:10:12.780: E/AndroidRuntime(719):  at java.lang.reflect.Method.invokeNative(Native Method)
02-07 21:10:12.780: E/AndroidRuntime(719):  at java.lang.reflect.Method.invoke(Method.java:507)
02-07 21:10:12.780: E/AndroidRuntime(719):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-07 21:10:12.780: E/AndroidRuntime(719):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-07 21:10:12.780: E/AndroidRuntime(719):  at dalvik.system.NativeStart.main(Native Method)
02-07 21:10:12.780: E/AndroidRuntime(719): Caused by: java.lang.NullPointerException
02-07 21:10:12.780: E/AndroidRuntime(719):  at android.app.Activity.findViewById(Activity.java:1647)
02-07 21:10:12.780: E/AndroidRuntime(719):  at com.indianic.demo.calendark.CalendarActivity.<init>(CalendarActivity.java:44)
02-07 21:10:12.780: E/AndroidRuntime(719):  at java.lang.Class.newInstanceImpl(Native Method)
02-07 21:10:12.780: E/AndroidRuntime(719):  at java.lang.Class.newInstance(Class.java:1409)
02-07 21:10:12.780: E/AndroidRuntime(719):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
02-07 21:10:12.780: E/AndroidRuntime(719):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
02-07 21:10:12.780: E/AndroidRuntime(719):  ... 11 more
02-07 21:10:18.061: I/Process(719): Sending signal. PID: 719 SIG: 9
02-07 21:10:12.721:W/dalvikvm(719):threadid=1:线程以未捕获异常退出(组=0x40015560)
02-07 21:10:12.780:E/AndroidRuntime(719):致命异常:主
02-07 21:10:12.780:E/AndroidRuntime(719):java.lang.RuntimeException:无法实例化活动组件信息{com.indianic.demo.calendark/com.indianic.demo.calendark.CalendarActivity}:java.lang.NullPointerException
02-07 21:10:12.780:E/AndroidRuntime(719):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
02-07 21:10:12.780:E/AndroidRuntime(719):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
02-07 21:10:12.780:E/AndroidRuntime(719):在android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-07 21:10:12.780:E/AndroidRuntime(719):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
02-07 21:10:12.780:E/AndroidRuntime(719):在android.os.Handler.dispatchMessage(Handler.java:99)上
02-07 21:10:12.780:E/AndroidRuntime(719):在android.os.Looper.loop(Looper.java:123)上
02-07 21:10:12.780:E/AndroidRuntime(719):位于android.app.ActivityThread.main(ActivityThread.java:3683)
02-07 21:10:12.780:E/AndroidRuntime(719):位于java.lang.reflect.Method.Invokenactive(本机方法)
02-07 21:10:12.780:E/AndroidRuntime(719):在java.lang.reflect.Method.invoke(Method.java:507)
02-07 21:10:12.780:E/AndroidRuntime(719):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-07 21:10:12.780:E/AndroidRuntime(719):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-07 21:10:12.780:E/AndroidRuntime(719):在dalvik.system.NativeStart.main(本机方法)
02-07 21:10:12.780:E/AndroidRuntime(719):由以下原因引起:java.lang.NullPointerException
02-07 21:10:12.780:E/AndroidRuntime(719):在android.app.Activity.findViewById(Activity.java:1647)
02-07 21:10:12.780:E/AndroidRuntime(719):位于com.indianic.demo.calendark.CalendarActivity。(CalendarActivity.java:44)
02-07 21:10:12.780:E/AndroidRuntime(719):位于java.lang.Class.newInstanceImpl(本机方法)
02-07 21:10:12.780:E/AndroidRuntime(719):位于java.lang.Class.newInstance(Class.java:1409)
02-07 21:10:12.780:E/AndroidRuntime(719):在android.app.Instrumentation.newActivity(Instrumentation.java:1021)上
02-07 21:10:12.780:E/AndroidRuntime(719):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
02-07 21:10:12.780:E/AndroidRuntime(719):。。。还有11个
02-07 21:10:18.061:I/进程(719):发送信号。PID:719信号:9
在设置setOnItemClickListener()之前,我使用了initComponent()方法

强制关闭错误消失,应用程序正常打开

但是下一个活动没有打开,或者什么也没有发生。当我单击项目时。 :(

正如你所说,我尝试了不同的案例,但仍然没有成功

              public void onItemClick(AdapterView<?> parent, View v3,
                int position, long id) {


            //setContentView(R.layout.abc);
            switch (position) {
            case 0:
                Intent myIntent = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent);
                break;
            case 1:
                Intent myIntent1 = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent1);
                break;
            case 2:
                Intent myIntent2 = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent2);
                break;
            case 3:
                Intent myIntent3 = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent3);
                break;
            case 4:
                Intent myIntent4 = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent4);
                break;
            case 5:
                Intent myIntent5 = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent5);
                break;
            case 6:
                Intent myIntent6 = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent6);
                break;

            default:
                break;
            }
          }

    });
public void onItemClick(AdapterView父视图,视图v3,
内部位置,长id){
//setContentView(R.layout.abc);
开关(位置){
案例0:
Intent myIntent=newintent(getApplicationContext(),Abc.class);
星触觉(myIntent);
打破
案例1:
Intent myIntent1=新的Intent(getApplicationContext(),Abc.class);
星触觉(myIntent1);
打破
案例2:
Intent myIntent2=新的Intent(getApplicationContext(),Abc.class);
起始触觉(myIntent2);
打破
案例3:
Intent myIntent3=新的Intent(getApplicationContext(),Abc.class);
起始触觉(myIntent3);
打破
案例4:
Intent myIntent4=新的Intent(getApplicationContext(),Abc.class);
起始触觉(myIntent4);
打破
案例5:
Intent myIntent5=新的Intent(getApplicationContext(),Abc.class);
起始触觉(myIntent5);
打破
案例6:
Intent myIntent6=新的Intent(getApplicationContext(),Abc.class);
起始触觉(myIntent6);
打破
违约:
打破
}
}
});

在设置
setOnItemClickListener()之前,需要调用自定义的
initComponent()
方法

公共类活动扩展活动
{
GridView;
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.cactivity);
initComponent();
setOnItemClickListener(新的OnItemClickListener()
{
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
开关(位置){
案例0://对其余项目执行相同操作
Intent myIntent=newintent(getApplicationContext(),Abc.class);
星触觉(myIntent);
打破
违约:
打破
}
}
//完成();
}
});
}
私有void initComponent()
{
gridView=(gridView)findViewById(R.id.month\u gridView);
}

谢谢,强制关闭错误消失了,但如果我点击数字,什么也不会发生:(Abc中没有错误,如果我使用相同代码在cactivity中使用按钮,即Intent myIntent=new Intent(getApplicationContext(),Abc.class);startActivity(myIntent);它正确运行“我的事情没有发生”按
              public void onItemClick(AdapterView<?> parent, View v3,
                int position, long id) {


            //setContentView(R.layout.abc);
            switch (position) {
            case 0:
                Intent myIntent = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent);
                break;
            case 1:
                Intent myIntent1 = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent1);
                break;
            case 2:
                Intent myIntent2 = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent2);
                break;
            case 3:
                Intent myIntent3 = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent3);
                break;
            case 4:
                Intent myIntent4 = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent4);
                break;
            case 5:
                Intent myIntent5 = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent5);
                break;
            case 6:
                Intent myIntent6 = new Intent(getApplicationContext(),Abc.class);
                startActivity(myIntent6);
                break;

            default:
                break;
            }
          }

    });
public class CActivity extends Activity 
{
  GridView gridView; 

   public void onCreate(Bundle savedInstanceState) 
            {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.cactivity);
    initComponent();
             gridView.setOnItemClickListener(new OnItemClickListener()
            {
              public void onItemClick(AdapterView<?> parent, View v,
                int position, long id) {
                  switch (position) {
                case 0://do the same for your remaining items
                    Intent myIntent = new Intent(getApplicationContext(), Abc.class);
                    startActivity(myIntent);
                    break;

                default:
                    break;
                }
              }
            //finish();
        }
    });
}
       private void initComponent() 
       {
         gridView = (GridView) findViewById(R.id.month_gridView);
         }