0

我在 android listview 中定位时遇到了一些问题,下一个活动没有加载,而它们都在清单中。

这是我的代码:

package com.WNF;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;


public class Actiemenu extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // storing string resources into Array
    String[] actiemenu = getResources().getStringArray(R.array.actiemenu);

    // Binding resources Array to ListAdapter
    this.setListAdapter(new ArrayAdapter<String>(this, R.layout.actiemenu, R.id.label,     actiemenu));

    ListView lv = getListView();

    // listening to single list item on click
    lv.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) {

            switch(position) {
            case '0' :            
                Intent intent = new Intent(Actiemenu.this, Acties.class);
                intent.putExtra("extras", position);
                startActivity(intent);
                break;
            case '1' :            
                Intent intent2 = new Intent(Actiemenu.this, Acties2.class);
                intent2.putExtra("extras", position);
                startActivity(intent2);
                break;
        }


      }
    });

}
}

接收意图的代码也存在于 Acties 中

package com.WNF;


import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;

public class Acties extends Activity{
// aanroepen van een bundle, kan je elke naam geven die je maar wilt, 
//zolang de bundle als de onCreate maar dezelfde naam hebben
@Override  
public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        // de setContentView is niets meer dan de gegevens van de
//View ophalen uit de R.layout.naamvandeXML
        // Onthoud goed dat je dezelfde XMLs voor meerdere pagina's 
//kan gebruiken.
        setContentView(R.layout.acties1);

        Intent i = getIntent();
        i.getStringExtra("extras");
   }
}

谁能看到我做错了什么?提前致谢 :)

4

1 回答 1

1

您的 switch 语句错误地尝试将整数位置值与ASCII 字符 '0''1'. 由于 的 ASCII 值为'0'48,而 的 ASCII 值为'1'49,因此单击前两个列表项时没有任何反应。

您应该消除单引号并简单地使用整数:

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

    switch(position) {
    case 0: //Instead of '0' 
        Intent intent = new Intent(Actiemenu.this, Acties.class);
        intent.putExtra("extras", position);
        startActivity(intent);
        break;
    case 1: //Instead of '1'
        Intent intent2 = new Intent(Actiemenu.this, Acties2.class);
        intent2.putExtra("extras", position);
        startActivity(intent2);
        break;
}
于 2012-06-14T00:06:57.983 回答