【问题标题】:Unable to create link to other activity?无法创建指向其他活动的链接?
【发布时间】:2011-07-07 19:40:54
【问题描述】:

我是 android 新手,我无法创建从当前列表视图到其他活动的链接: 这是我的代码:

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_advanced_main);
        ListView lv1 = (ListView)findViewById(android.R.id.list);

        ArrayList<HashMap<String,Object>> mylist = new ArrayList<HashMap<String,Object>>();
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("image", R.drawable.mj_icon);
        map.put("text1", "Michael Jackson");
        map.put("text2", "King Of Pop");
        map.put("to",R.drawable.arrow_icon );
        mylist.add(map);
        map = new HashMap<String,Object>();
        map.put("image", R.drawable.sachin_icon);
        map.put("text1", "Sachin Tendulkar");
        map.put("text2", "The Master Blaster");
        map.put("to",R.drawable.arrow_icon );
        mylist.add(map);
        map = new HashMap<String,Object>();
        map.put("image", R.drawable.hrithik_icon);
        map.put("text1", "Hrithik Roshan");
        map.put("text2", "Bollywood Actor");
        map.put("to",R.drawable.arrow_icon );
        mylist.add(map);
        map = new HashMap<String,Object>();
       map.put("image", R.drawable.maradona_icon);
        map.put("text1", "Diego Maradona");
        map.put("text2", "The God Of Soccer");
        map.put("to",R.drawable.arrow_icon);
        mylist.add(map);


        SimpleAdapter mSchedule = new SimpleAdapter(this, mylist, R.layout.list_advanced,
                new String[] {"image", "text1", "text2", "to"}, new int[] {R.id.movieicon, R.id.name, R.id.description, R.id.img});


        setListAdapter(mSchedule);

       lv1=getListView();
        lv1.setTextFilterEnabled(true);
        lv1.setOnItemClickListener(new OnItemClickListener(){
            public void onItemClick(AdapterView<?> parent,View view,int position,long id){

                switch(position)
                {
                case 0:
                Intent obj = new Intent(advancedlistview.this,michaeljackson.class);
                startActivityForResult(obj,0);
                Log.i("test","tst");
                break;
                case 1:

              Intent obj1 = new Intent(advancedlistview.this,Sachin.class);
                System.out.println("hello");
              startActivity(obj1); 
            break;
                case 2:
                     Intent obj2 = new Intent(advancedlistview.this,Hrithik.class);
                    startActivity(obj2); 
                    break;
                case 3:
                    Intent obj3 = new Intent(advancedlistview.this,Maradona.class);
                    startActivity(obj3);
                    break;
                }
            }
        });


    }

我的日志猫是::

03-03 12:35:05.093: 调试/AndroidRuntime(4899): >>>>>>>>>>>>>> AndroidRuntime 开始 >>>>>>>>>>>>> AndroidRuntime 开始

我的控制台报错:

[2011-03-03 12:35:08-ddms]null java.lang.NullPointerException 在 com.android.ddmlib.Client.sendAndConsume(Client.java:571) 在 com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142) 在 com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65) 在 com.android.ddmlib.Client.getJdwpPacket(Client.java:670) 在 com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317) 在 com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)

【问题讨论】:

  • 错误是什么?请提供堆栈跟踪。

标签: android


【解决方案1】:

您的类是否列在 AndroidManifest.xml 文件中? Android Manifest Info

每个活动都必须在清单中,否则应用程序将崩溃。试试这个:

<activity android:name=".michaeljackson" android:label="michaeljackson" />
<activity android:name=".Sachin" android:label="Sachin" />
<activity android:name=".Hrithik" android:label="Hrithik" />
<activity android:name=".Maradona" android:label="Maradona" />

【讨论】:

    【解决方案2】:

    我认为您的上下文不正确。换个试试

    advancedlistview.this
    

    getApplicationContext();
    

    如果这不起作用,请发布您的堆栈跟踪。

    编辑:你的第一个 startActivityForResult(obj --> ,

    【讨论】:

    • 你知道logcat在哪里吗?如果您正在运行 eclipse,它应该在调试透视图中。您应该在那里找到有关错误的一些信息,尝试在此处粘贴您认为相关的位。
    • 03-03 11:57:16.813:WARN/KeyCharacterMap(3828):id 0 没有键盘 03-03 11:57:16.844:WARN/KeyCharacterMap(3828):使用默认键盘映射:/系统/usr/keychars/qwerty.kcm.bin
    • 点击时会发生什么? “堆栈跟踪”是 Java VM 在您的应用程序崩溃时记录的记录。它被写入通过 logcat 视图看到的日志:在 Eclipse 中,菜单窗口,显示视图 > 其他,文件夹 Android,logcat。查找许多红色的日志行,以 *Exception 开头,并在此处粘贴整个集合。如果它不崩溃,它会做什么?
    • 我也在控制台中得到 NullPointer 异常
    • 我在 log cat 中没有得到任何异常,但在控制台中我得到了这个:
    猜你喜欢
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多