1

您好,我正在尝试学习 android 中的屏幕导航

  • 我收到此错误,但没有语法错误
  • 我已经在下面发布了相关类的代码

CopperChimneyPhotos.java

public class CopperChimneyPhotos extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.copper_chimney_photos);

        Button btn=(Button) findViewById(R.id.PhotoButton);

        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent pt=new Intent(CopperChimneyPhotos.this,CopperChimneyDesc.class);
                startActivity(pt);
            }

        });
    }
}

CopperChimneyDesc.java

public class CopperChimneyDesc extends Activity{

    private static String url = "http://url:7002/xxxx/";
    private static String url1 = "http://url:7002/xxxx/";



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.copperchimney_desc_screen);

        //getting info from listview to display the name in TopNavigationBarCopperChimneyDescActivityName
        TextView topdisp=(TextView) findViewById(R.id.TopNavigationBarCopperChimneyDescActivityName);
        topdisp.setText(getIntent().getExtras().getString("CC_RES"));


        // Creating JSON Parser instance
        JSONObjParser jParser = new JSONObjParser();

        // getting JSON string from URL
        JSONArray json = jParser.getJSONFromUrl(url);

        // getting JSON string from URL
        JSONArray json1 = jParser.getJSONFromUrl(url1);


        try {
            for (int i = 0; i < json1.length(); i++) {
                JSONObject c = json1.getJSONObject(i);


                // Storing each json item in variable
                int id = c.getInt("_id");
                String TIME = c.getString("RestaurantTime");

                TimeMap.put(id, TIME);

            }
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


        try {
            for (int i = 0; i < json.length(); i++) {
                JSONObject c = json.getJSONObject(i);

                           // remaining code


            }
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        Button BACKBUTTON=(Button) findViewById(R.id.TopNavigationBarCopperChimneyDescActivityBackButton);
        BACKBUTTON.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent emp1=new Intent(CopperChimneyDesc.this,MainActivity.class);
                startActivity(emp1);
            }
        });


        Button PHOTOBUTTON=(Button) findViewById(R.id.CopperChimneyPhotosButton);
4

2 回答 2

2

您还没有在此处添加任何额外内容

 @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent pt=new Intent(CopperChimneyPhotos.this,CopperChimneyDesc.class);
            startActivity(pt);

CopperChimneyPhotos如此getIntent().getExtras().getString("CC_RES"));将返回null

我不确定您期望该值来自何处,但需要将其添加到Intent启动此值的内容中Activity,例如

 @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent pt=new Intent(CopperChimneyPhotos.this,CopperChimneyDesc.class);
            pt.putExtra("CC_RES", stringToAdd);
            startActivity(pt);

您可能还想检查一下,getIntent()并且在将值分配给某物之前getExtras()不要返回您的第二堂课。当你去 from to时null你有extras,但当你去 from MainActivitytoDesc时没有。PhotosDesc

于 2013-08-16T17:10:53.260 回答
0

由于 CopperChimneyDesc.java 第 37 行中的错误,您会收到错误:

08-16 22:28:56.293: E/AndroidRuntime(360): Caused by: java.lang.NullPointerException
08-16 22:28:56.293: E/AndroidRuntime(360):  at com.project.findmybuffet.CopperChimneyDesc.onCreate(CopperChimneyDesc.java:37)

无论它在您粘贴的源代码中的哪一行,您都会得到NullPointerException(aka NPE),这通常意味着您尝试使用不再存在的值,或者某些元素未初始化。

于 2013-08-16T17:09:51.813 回答