2013-09-30 4 views
-1

Прямо сейчас я вставляю скользящее меню в мое приложение! Перед этим у меня было меню из 2-х предметов. Эти два пункта, где (есть), два вида деятельности. Разумеется, щелкнув на элементе-корреспонденте, я мог бы пойти в правильном направлении. Теперь у меня есть массив в strings.xml с деталями:Изменение активности, нажав на элемент списка с помощью slidemenu

<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> 

Так у меня есть ListView в navdrawer .. Теперь, как я могу щелкните в первом элементе и перейдите к моей деятельности? Благодаря

EDIT (если это необходимо): 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); 
      } 
     }); 
    } 

ответ

0

Название вашей деятельности находится в String, я, верно? Либо вы берете теперь ручной способ:

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(); 
} 

взятых из How to create Intent using a string to launch another activity?

+0

и если в будущем я буду создавать еще один элемент, возможно использовать условие 'case'? –

+1

«автоматически» способ работает как можно больше предметов! Если вы хотите использовать «вручную» способ, условие «случай» - лучшая идея, право – Manu

Смежные вопросы