I have 2 fragments with on both fragments a button. When I press the button I'd like to start a new Activity. But I can't get it to work.
The error I'm getting: ERROR here: Type mismatch: cannot convert from mFragmentFavorite to Fragment
What am I doing wrong?
MyFragmentPagerAdapter
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; public class MyFragmentPagerAdapter extends FragmentPagerAdapter{ final int PAGE_COUNT = 3; /** Constructor of the class */ public MyFragmentPagerAdapter(FragmentManager fm) { super(fm); } /** This method will be invoked when a page is requested to create */ @Override public Fragment getItem(int arg0) { switch(arg0){ case 0: return new FavoriteActivity(); //ERROR: Type mismatch: cannot convert from FavoriteActivity to Fragment case 1: return new SettingsActivity(); default: return null; } } /** Returns the number of pages */ @Override public int getCount() { return PAGE_COUNT; } }
FavoriteActivity
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; public class FavoriteActivity extends Activity{ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.main_favorite, container, false); OnClickListener listnr=new OnClickListener() { @Override public void onClick(View v) { Intent i= new Intent("aFavorite"); startActivity(i); } }; Button btn =(Button) v.findViewById(R.id.mainFavorite); btn.setOnClickListener(listnr); return v; } }
If FavoriteActivity extends fragments, the error is gone but then I get an error at findViewById(R.id.mainFavorite);
and the error is
The method findViewById(int) is undefined for the type FavoriteActivity
EDIT:
When I press the button in the fragment to start the activity then the app crashes this is my logcat
03-18 16:01:23.985: E/AndroidRuntime(1985): FATAL EXCEPTION: main 03-18 16:01:23.985: E/AndroidRuntime(1985): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=FavoriteActivityList } 03-18 16:01:23.985: E/AndroidRuntime(1985): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1569) 03-18 16:01:23.985: E/AndroidRuntime(1985): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1420) 03-18 16:01:23.985: E/AndroidRuntime(1985): at android.app.Activity.startActivityForResult(Activity.java:3446) 03-18 16:01:23.985: E/AndroidRuntime(1985): at android.app.Activity.startActivityForResult(Activity.java:3407) 03-18 16:01:23.985: E/AndroidRuntime(1985): at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:826) 03-18 16:01:23.985: E/AndroidRuntime(1985): at android.support.v4.app.Fragment.startActivity(Fragment.java:838) 03-18 16:01:23.985: E/AndroidRuntime(1985): at com.example.spui.FavoriteActivity$1.onClick(FavoriteActivity.java:24) 03-18 16:01:23.985: E/AndroidRuntime(1985): at android.view.View.performClick(View.java:4211) 03-18 16:01:23.985: E/AndroidRuntime(1985): at android.view.View$PerformClick.run(View.java:17267) 03-18 16:01:23.985: E/AndroidRuntime(1985): at android.os.Handler.handleCallback(Handler.java:615) 03-18 16:01:23.985: E/AndroidRuntime(1985): at android.os.Handler.dispatchMessage(Handler.java:92) 03-18 16:01:23.985: E/AndroidRuntime(1985): at android.os.Looper.loop(Looper.java:137) 03-18 16:01:23.985: E/AndroidRuntime(1985): at android.app.ActivityThread.main(ActivityThread.java:4898) 03-18 16:01:23.985: E/AndroidRuntime(1985): at java.lang.reflect.Method.invokeNative(Native Method) 03-18 16:01:23.985: E/AndroidRuntime(1985): at java.lang.reflect.Method.invoke(Method.java:511) 03-18 16:01:23.985: E/AndroidRuntime(1985): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) 03-18 16:01:23.985: E/AndroidRuntime(1985): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) 03-18 16:01:23.985: E/AndroidRuntime(1985): at dalvik.system.NativeStart.main(Native Method)