public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportFragmentManager()
.beginTransaction()
.replace(android.R.id.content,
new MainFragment(), "MainFragment")
.commit();
}
public static class MainFragment extends ListFragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setListAdapter(new ArrayAdapter(getActivity(),
android.R.layout.simple_list_item_1,
android.R.id.text1,
new String[]{"test1", "test2", "test2"}));
}
}
}
AppCompat v7 の version 19 だと普通に MainFragment が表示されます。
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "21.1.1"
defaultConfig {
applicationId "net.yanzm.sample2"
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
...
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
}
しかし、AppCompat v7 の version 21 にすると、でない!
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
...
defaultConfig {
...
targetSdkVersion 21
...
}
...
}
dependencies {
...
compile 'com.android.support:appcompat-v7:21.0.3'
}
悲しみ。。。
レイアウトファイルを用意すれば表示されるけど。。。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" />
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content, new MainFragment(), "MainFragment")
.commit();
}
...
}
バグなんだろうか。。。
↓多分同じこと言ってる http://stackoverflow.com/questions/27460502/appcompat-v7-android-5-0-actionbaractivity-textview-not-visible
追記: getSupportActionBar() を呼ぶと表示された。。。謎い。
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// これを呼ぶと表示される!なぜだ!
getSupportActionBar();
getSupportFragmentManager()
.beginTransaction()
.replace(android.R.id.content,
new MainFragment(), "MainFragment")
.commit();
}
...
}
0 件のコメント:
コメントを投稿