0

Sherlock フラグメントを使用してアクション バーを作成しています。アクションバーにListViewがありますが、リストビューでアクティビティを呼び出すことができます..助けてくださいありがとう.. :)

このコードには、配列 list を使用したリストビューがあります。私はmylistが同じアクティビティを呼び出すことができるようにしたい。

そのため、アクションバーのメニューを好きにすることができます。リストビューをクリックすると、彼は活動に感謝することができます..助けてください!

私のコードを修正してください..リストビューの各オプションでアクティビティを呼び出す方法..ありがとう..

AppleFragment.java

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.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;

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

     // Getting a reference to listview of main.xml layout file
        ListView listview = AppleFragment.this.getListView();

        listview.setAdapter(adapter);

        // Setting the adapter to the listView
        listview.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, 
                                  View view, int position,long id) {
              // ?? please add code in here to call activity from each option in listview.. T_T or correct my code

              }

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

1 に答える 1

0

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-16T08:50:26.510 に答える