我在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
}
}
答案 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);