0

我正在使用 Sherlock 片段制作动作栏。我在操作栏中有 ListView,但我的 listview 可以调用活动..请帮助我谢谢.. :)

在这段代码中有一个使用数组列表的列表视图。我想 mylist 可以调用相同的活动。

所以它可以喜欢操作栏中的菜单。当我们点击列表视图时..他可以打电话给活动谢谢..请帮助我!

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

2 回答 2

1

您需要在列表视图上使用 setOnItemClickListener()

  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);
  }
}); 
于 2013-03-16T09:05:07.253 回答
0

ActionBar 中的列表导航不需要 ListFragment(或您的情况下的 SherlockListFragment)。您的代码正在为作为 Activity内容的 ListView 设置适配器。您想要的是设置ActionBar 的导航模式并为ActionBar 提供适配器。在您的 onCreate 中:

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

adapter是一个SpinnerAdapter实现。navigationListener 是一个ActionBar.OnNavigationListener实现。当用户从 ActionBar 的下拉列表中按下一个项目时,您的 navigationListeneronNavigationItemSelected方法会被调用并传入所选项目的位置和 id。在该回调中,您可以实现启动另一个活动。

请参阅ActionBarActionBar.OnNavigationListener -- ActionBarSherlock 反映了标准的 Android ActionBar API。

于 2013-03-16T05:25:46.700 回答