想要从listview点击启动活动,但我的课程不会扩展活动

时间:2014-07-12 12:05:53

标签: java android listview android-listview

我在viewpager中有一个listview。如果我点击该列表视图中的项目,我想开始一个新活动或者如果可能的话,为多个xml进行相同的活动。

但是我的班级没有延长活动。

这是我的代码:

    public class SampleListFragment extends ScrollTabHolderFragment implements OnScrollListener {
    private static final String ARG_POSITION = "position";
    private ListView mListView;
    private ArrayList<String> mListItems;
    private int mPosition;

    public static Fragment newInstance(int position) {
    SampleListFragment f = new SampleListFragment();
    Bundle b = new Bundle();
    b.putInt(ARG_POSITION, position);
    f.setArguments(b);
    return f; }
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mPosition = getArguments().getInt(ARG_POSITION);
    mListItems = new ArrayList<String>();
    if (mPosition==0){
       mListItems.add("Game" );
       mListItems.add(".iphone " );
       mListItems.add("xxx" );
       mListItems.add("yyy" );
       mListView.setOnItemClickListener(new OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> parent, View view,
             int position, long id) {
          switch (position){
             case 0 : // i want to start new activity if i clicked in game 
                break;
             case 1 : //start a new activity if i clicked in iphone 
                break;
          }
        }
        private Context getApplicationContext() {
            // TODO Auto-generated method stub
            return null;
        }
     });
}   else if (mPosition==1){
   mListItems.add(". item - currnet page:حة 1 " );
}   else if (mPosition==2){
        mListItems.add(". item - currnet page:حة2  " );
}  else if (mPosition==3){
   mListItems.add(". item - currnet page:حة 3 " );
}  else if (mPosition==4){
   mListItems.add(". item - currnet page:حة 4 " );}}
   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle        savedInstanceState) {
      View v = inflater.inflate(R.layout.fragment_list, null);
      mListView = (ListView) v.findViewById(R.id.listView);
      View placeHolderView = inflater.inflate(R.layout.view_header_placeholder, mListView, false);
      mListView.addHeaderView(placeHolderView);
      return v; 
   }
   @Override
   public void onActivityCreated(Bundle savedInstanceState) {
      super.onActivityCreated(savedInstanceState);
      mListView.setOnScrollListener(this);
      mListView.setAdapter(new ArrayAdapter<String>(getActivity(), R.layout.list_item,       android.R.id.text1, mListItems));}
      @Override
      public void adjustScroll(int scrollHeight) {
         if (scrollHeight == 0 && mListView.getFirstVisiblePosition() >= 1) {
         return;
      }
      mListView.setSelectionFromTop(1, scrollHeight);}
      @Override
       public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
          if (mScrollTabHolder != null)
             mScrollTabHolder.onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount, mPosition);
          }
          @Override
          public void onScrollStateChanged(AbsListView view, int scrollState) {
             // nothing  
       }
    }

2 个答案:

答案 0 :(得分:0)

你可以打电话

Intent intent = new Intent(getActivity(), YourActivity.class);
getActivity().startActivity(intent);

如果您想从Activity

开始新的Fragment

答案 1 :(得分:0)

这可能是因为非活动类没有自己的上下文。

所以你需要上下文来开始另一项活动。

此代码应该适合您

    Intent intent = new Intent(getApplicationContext(),yourActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    getApplicationContext.startactivity(intent);