-1

今、私は自分のアプリケーションにslidemenuを挿入しています! その前に、私は2つのアイテムメニューを持っていました. この 2 つの項目 (ある)、2 つのアクティビティ。もちろん、対応するアイテムをクリックすると、適切なアクティビティに進むことができます。今、私はstrings.xmlにアイテムを含む配列を持っています:

<string-array name="marray">
   <item>ACTIVITY1</item>
   <item>ACTIVITY2</item>
</string-array>

アイテムを呼び出すレイアウト

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <ListView
        android:id="@+id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:divider="#000"
        android:dividerHeight="1dp"
        android:entries="@array/marray" />

</RelativeLayout>

だから私はnavdrawerにリストビューを持っています..さて、どうすれば最初のアイテムをクリックしてアクティビティに行くことができますか? ありがとう

編集 (必要な場合): MenuFragment.java

public class MenuFragment extends SherlockFragment {
    ListView list;
    MenuClickInterFace mClick;

    interface MenuClickInterFace {
        void onListitemClick(String item);
    }

    @Override
    public void onAttach(Activity activity) {
        // TODO Auto-generated method stub
        super.onAttach(activity);
        mClick = (MenuClickInterFace) activity;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);
        list = (ListView) getView().findViewById(R.id.list);
        list.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                String i=(String) arg0.getItemAtPosition(arg2);
                mClick.onListitemClick(i);
            }
        });
    }
4

1 に答える 1

0

アクティビティの名前は文字列 i にありますよね? 手動の方法を取るか:

if (i == "A") {
startActivity(new Intent(this, A.class));
}
else if (i == "B") {
    startActivity(new Intent(this, B.class));
}

または、「自動的に」方法を選択します。

try {
    Intent openNewIntent = new Intent( this, Class.forName(i) );
    startActivity( openNewIntent );
} catch (ClassNotFoundException e) {
    e.printStackTrace(); 
}

文字列を使用して別のアクティビティを起動するインテントを作成する方法から取得しましたか?

于 2013-09-30T20:36:52.977 に答える