0

Android リストビューでの配置に問題があります。次のアクティビティが読み込まれていませんが、両方ともマニフェストに含まれています。

これが私のコードです:

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 であるため、最初の 2 つのリスト項目をクリックしても何も起こりません。

一重引用符を削除して、単純に整数を使用する必要があります。

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 に答える