2016-07-21 9 views
1

更新: MainActivityFragment extends FragmentActivityMainActivityFragment extends AppCompatActivityに変更して修正しました。インテントのためにアクションバーが表示されませんか?

ありがとうございます。


私はテントをコメントしていない場合はアクションバーが表示されます。 MainActivityをonCreateでIntentを実行すると、Action Barは表示されません。どうやってインテントでアクションバーを表示するのですか?以下のインテント(メインアクティビティ)とAndroidマニフェストコードを提供します。スクリーンショットに

リンク:

Non-Intent

Intent

MainActivity.java:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //setContentView(R.layout.activity_main); // this is the start  layout 
    Intent intent = new Intent(this, MainActivityFragment.class); 
    startActivity(intent); 
} 

のAndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.romi1.popularmoviesapp"> 

    <uses-permission android:name="android.permission.INTERNET" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <dependency> 
      <groupId> 
       info.movito 
      </groupId> 

      <artifactId> 
       themoviedbapi 
      </artifactId> 

      <version> 
       1.3 
      </version> 
     </dependency> 

     <activity android:name=".MainActivityFragment"></activity> 
     <activity android:name=".MoviesDetailAdapter"></activity> 
    </application> 

</manifest> 

Style.xml:

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar"> 
     <!--Theme.AppCompat.Light.DarkActionBar--> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 

</resources> 

MainActivityFragment:

public class MainActivityFragment extends FragmentActivity { 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.fragment_main); 

     movies = new Movies[1000]; 

     jsonParser(json); 

     moviesAdapter = new MoviesAdapter(this, movies); 

     setContentView(R.layout.fragment_main); 
     GridView gridView = (GridView) findViewById(R.id.listView); 
     gridView.setAdapter(moviesAdapter); 

     // This for setting what happen when one of the movie is selected 
     gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 

       // Make another fragment class for this Adapter 
       // And figure out away to send the clicked parcelable variable 
       Movies topRatedMovieJson = moviesAdapter.getItem(i); 
       Log.v(LOG_TAG, "topRatedMovieJson : " + i); 
       Log.v(LOG_TAG, "topRatedMovieJson : " + topRatedMovieJson.title.toString()); 
       Intent intent = new Intent(getBaseContext(), MoviesDetailAdapter.class); 
       intent.putExtra("parcelable", topRatedMovieJson); 
       startActivity(intent); 
      } 
     }); 
    } 
} 

更新: 私はMainActivityFragment extends AppCompatActivityMainActivityFragment extends FragmentActivityを変更することにより、それを修正。

ありがとうございます。

+0

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="SecondTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> 

や活動に適用します:

は、このようなスタイルを記述します。また、 'MainActivityFragment'という名前のアクティビティを持つことはかなり混乱しています。あなたは断片ではなく、活動を追加したいのですか? –

+0

セルゲイに感謝します。名前をつけて申し訳ありません、私はそれを変更します。 MainActivityFragmentはフラグメントアクティビティを拡張します。これが原因だろうか?アプリのテーマがAndroid Manifestに既に設定されていても、MainActivityFragmentにアクションバーを手動で追加する必要があります。これは正しいですか? – QuartZ

+0

あなたのstyle.xmlファイル – tk1505

答えて

1

2つの方法があります 1.そのアクティビティをフラグメント に変更します。2.第2アクティビティのレイアウトとアクティビティにアクションバーを追加します。

+0

ありがとうございました。 2番目のオプションはAndroidマニフェストに追加することを意味しますか? – QuartZ

+0

いいえ、layout.xmlファイルとMainActivityFragmentアクティビティで変更する必要があります。この例に従ってください。http://www.vogella.com/tutorials/AndroidActionBar/article.html – tk1505

+0

ありがとうtk。 MainActivityFragmentをFragment ActivityをAppCompatActivityに変更して修正しました。 – QuartZ

0

2つのスタイルを設定し、アクティビティに適用することができます。私はあなたがMainActivityFragmentでアクションバーを持っていないと思う

<activity android:name=".MainActivityFragment" android:theme="@style/SecondTheme"/> 
    <activity android:name=".MoviesDetailAdapter" android:theme="@style/SecondTheme"/> 
+0

ありがとうライオネル。 MainActivityFragmentをFragment ActivityをAppCompatActivityに変更して修正しました。 – QuartZ

関連する問題