2013-03-16 2 views
0

Iam, используя фрагмент Шерлока, чтобы создать панель действий. и у меня есть ListView в панели действий, но я хочу, чтобы мой список мог вызвать активность .. Пожалуйста, помогите мне Спасибо .. :)Как вызвать активность с помощью массива ListView

В этом коде есть listview, используя список массивов. и я хочу, чтобы mylist мог вызывать такую ​​же активность.

Так что это может понравиться меню в панели действий. и когда мы clik listview .. он может вызвать активность спасибо .. пожалуйста, помогите мне!

package iqbal.apps.visitkuningan; 

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 

import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.SimpleAdapter; 

import com.actionbarsherlock.app.SherlockListFragment; 

public class AppleFragment extends SherlockListFragment{ 

    /** An array of items to display*/ 
    String apple_versions[] = new String[]{ 
      "Mountain Lion", 
      "Lion", 
      "Snow Leopard", 
      "Leopard", 
      "Tiger", 
      "Panther" 
    }; 

    /** An array of images to display*/ 
    int apple_images[] = new int[]{ 
      R.drawable.mountainlion, 
      R.drawable.lion, 
      R.drawable.snowleopard, 
      R.drawable.leopard, 
      R.drawable.tiger, 
      R.drawable.panther 
    }; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 

     // Each row in the list stores country name, currency and flag 
     List<HashMap<String,String>> aList = new ArrayList<HashMap<String,String>>(); 

     for(int i=0;i<5;i++){ 
       HashMap<String, String> hm = new HashMap<String,String>(); 
      hm.put("txt", apple_versions[i]); 
      hm.put("img", Integer.toString(apple_images[i] )); 
      aList.add(hm); 
     } 

     // Keys used in Hashmap 
     String[] from = { "img","txt" }; 

     // Ids of views in listview_layout 
     int[] to = { R.id.img,R.id.txt}; 

     // Instantiating an adapter to store each items 
     // R.layout.listview_layout defines the layout of each item 
     SimpleAdapter adapter = new SimpleAdapter(getActivity().getBaseContext(), aList, R.layout.listview_layout, from, to); 


     // Setting the adapter to the listView 
     setListAdapter(adapter); 

     return super.onCreateView(inflater, container, savedInstanceState); 
    }  
} 

ответ

1

Вы должны использовать setOnItemClickListener() на вашем ListView

listview.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg0,View arg1, int position, long arg3) { 
    Intent n = null; 
    switch (position){ 
     case 0: 
     n = new Intent(getActivity(), Class0.class); 
     break; 
     case 1: 
     n = new Intent(getActivity(), Class1.class); 
     break; 
    } 
    if(null!=n) 
     startActivity(n); 
    } 
}); 
0

Список навигации в ActionBar не требует ListFragment (или SherlockListFragment в вашем случае). Ваш код устанавливает адаптер для ListView, который является контентом. Вы хотите установить режим навигации ActionBar и предоставить адаптер ActionBar. В вашем OnCreate:

ActionBar actionBar = getSupportActionBar(); 
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
actionBar.setListNavigationCallbacks(adapter, navigationListener); 

adapter является SpinnerAdapter реализация. navigationListener - это реализация ActionBar.OnNavigationListener. Когда пользователь нажимает элемент из выпадающего списка в ActionBar, вызывается метод вашего навигатора, который передает его в позицию и идентификатор выбранного элемента. В этом обратном вызове вы можете реализовать запуск другого действия.

См. ActionBar и ActionBar.OnNavigationListener - ActionBarSherlock отражает стандартные API Android ActionBar.

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