2

リストビューにクラス配列を追加しようとしています。

デバッグ時に、特別なエラーなしでsetListAdapter行でスタックします。

コンパイルすると、スプラッシュ画面が表示され、menu.javaが開きますが、リストの項目をクリックしても何も起こりません。

これが私のMenu.javaです

package com.android;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Menu extends ListActivity {

    String classes[] = { "MainActivity", "Acl", "Bcl", "Ccl",
            "Dcl", "Ecl", "Fcl" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setListAdapter(new ArrayAdapter<String>(Menu.this,
                android.R.layout.simple_list_item_1, classes));

    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {

        super.onListItemClick(l, v, position, id);
        String classpos = classes[position];
        try {

            Class ourClass = Class.forName("com.android.MainActivity"  classpos);
            Intent ourIntent = new Intent(Menu.this, ourClass);

            startActivity(ourIntent);
        } catch (ClassNotFoundException e) {

            e.printStackTrace();
        }

    }
}

そしてここにAndroidManifest.xmlの私のコード関連部分

<activity
            android:name=".MainActivity"
            android:exported="false"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="com.android.MAINACTIVITY" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
4

1 に答える 1

0

コードでクラス名を作成する際に誤りがあります。

これを試して、

String classpos="com.android。"+classes [position];

クラスourClass=Class.forName(classpos);

于 2012-12-01T12:22:49.310 に答える