2016-05-12 10 views
-1

私は私のアプリを起動すると、私は次の例外を取得:void OnFragmentInteractionListenerを実装する方法は?

java.lang.RuntimeExceptionを:com.demo.mtin.mtin.MainActivityは

をOnFragmentInteractionListener実装する必要があります誰かがこれで私を助けることができますか? MainActivityに追加する必要があるコードはどこですか?

MainActivity怒鳴るPopularFragmentとRatedFragment:

public class MainActivity extends AppCompatActivity { 

private RecyclerView mRecyclerView; 
private MoviesAdapter mAdapter; 


@Override 
protected void onResume() { 
    SharedPreferences sharedPref = getBaseContext().getSharedPreferences(getString(R.string.preference_file_key), Context.MODE_PRIVATE); 
    String order = sharedPref.getString("order", "popular"); 
    if (order.equals("popular")) { 
     getPopularMovies(); 
    } else { 
     getTopRatedMovies(); 
    } 
    super.onResume(); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    // uci i postaviti order -> popular 
    Log.d("NESTO", "NESTO-onCreate"); 
    PreferenceManager.setDefaultValues(this, R.xml.preferences, false); 



} 
} 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout); 
    tabLayout.addTab(tabLayout.newTab().setText("Tab 1")); 
    tabLayout.addTab(tabLayout.newTab().setText("Tab 2")); 
    tabLayout.addTab(tabLayout.newTab().setText("Tab 3")); 
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 

    final ViewPager viewPager = (ViewPager) findViewById(R.id.pager); 
    final PageAdapter adapter = new PageAdapter 
      (getSupportFragmentManager(), tabLayout.getTabCount()); 
    viewPager.setAdapter(adapter); 
    viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); 
    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      viewPager.setCurrentItem(tab.getPosition()); 
     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 

     } 

     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 

     } 
    }); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    Intent intent = new Intent(this, SettingsActivity.class); 
    startActivity(intent); 


    int id = item.getItemId(); 


    if (id == R.id.action_settings) { 


     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
+0

あなたの問題についてのより良い情報を提供してください。私は[this](http://developer.android.com/intl/es/training/basics/fragments/communicating.html)の前にお読みになることをお勧めします – UclidesGil

答えて

0

これは実際にはかなりストレートフォワードエラーメッセージであり、このために行く:

私は2つの空白の断片を持って

public class MainActivity extends AppCompatActivity implements PopularFragment.OnFragmentInteractionListener, RatedFragment.OnFragmentInteractionListener { ... 

    @Override 
    public void onFragmentInteraction(Uri uri) { 

    }} 

あなたのアクティビティがフラグメントのインターフェースを実装していることを明示して実装する必要があります(voidハフ)。

そして、あなたの断片で、次があります。

public interface OnFragmentInteractionListener { 
    // TODO: Update argument type and name 
    void onFragmentInteraction(Uri uri); 
} 
+0

これは1つのフラグメントにしかインポートできません。 2つのフラグメントの作成方法、およびonFragmentInteractionの作成方法ありがとう:) –

+0

私はこれのために私の答えを編集します。 – Amesys

関連する問題