Fragmentで複数Tabを用意して一つ目のTabにListviewを実装したいのですが何故か表示されません
いろいろサイトを回ったのですがわかりません、初心者なので簡単な見落としミスかもしれないのですが宜しくお願いします
lang
1 2listview.xml 3 4<?xml version="1.0" encoding="utf-8"?> 5<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 android:orientation="vertical" > 9 10 <ListView 11 android:layout_height="wrap_content" 12 android:id="@+id/listView" 13 android:layout_width="match_parent" 14 ></ListView> 15 16</LinearLayout> 17 18 19Fragment1.java 20 21package com.example.fragmenttest; 22 23import android.os.Bundle; 24import android.app.Fragment; 25import android.view.LayoutInflater; 26import android.view.View; 27import android.view.ViewGroup; 28 29public class Fragment1 extends Fragment { 30 31 @Override 32 public View onCreateView( 33 LayoutInflater inflater, 34 ViewGroup container, 35 Bundle savedInstanceState) { 36 return inflater.inflate(R.layout.listview, container, false); 37 } 38 39} 40 41ListActivity.java 42 43 44package com.example.fragmenttest; 45 46import android.app.Activity; 47import android.os.Bundle; 48import android.view.View; 49import android.widget.AdapterView; 50import android.widget.ArrayAdapter; 51import android.widget.ListView; 52import android.widget.Toast; 53 54import com.example.fragmenttest.R.id; 55 56public class ListViewActivity extends Activity { 57 @Override 58 public void onCreate(Bundle savedInstanceState) { 59 super.onCreate(savedInstanceState); 60 setContentView(R.layout.listview); 61 62 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1); 63 // アイテムを追加します 64 adapter.add("red"); 65 adapter.add("green"); 66 adapter.add("blue"); 67 ListView listView = (ListView) findViewById(id.listview); 68 // アダプターを設定します 69 listView.setAdapter(adapter); 70 // リストビューのアイテムがクリックされた時に呼び出されるコールバックリスナーを登録します 71 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 72 @Override 73 public void onItemClick(AdapterView<?> parent, View view, 74 int position, long id) { 75 ListView listView = (ListView) parent; 76 // クリックされたアイテムを取得します 77 String item = (String) listView.getItemAtPosition(position); 78 Toast.makeText(ListViewActivity.this, item, Toast.LENGTH_LONG).show(); 79 } 80 }); 81 // リストビューのアイテムが選択された時に呼び出されるコールバックリスナーを登録します 82 listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 83 @Override 84 public void onItemSelected(AdapterView<?> parent, View view, 85 int position, long id) { 86 ListView listView = (ListView) parent; 87 // 選択されたアイテムを取得します 88 String item = (String) listView.getSelectedItem(); 89 Toast.makeText(ListViewActivity.this, item, Toast.LENGTH_LONG).show(); 90 } 91 @Override 92 public void onNothingSelected(AdapterView<?> parent) { 93 } 94 }); 95 } 96} 97 98MainActivity.java 99 100 101package com.example.fragmenttest; 102 103 104import android.os.Bundle; 105import android.app.ActionBar; 106import android.app.Activity; 107import android.app.FragmentTransaction; 108import android.app.ActionBar.Tab; 109import android.app.ActionBar.TabListener; 110import android.app.Fragment; 111 112public class MainActivity extends Activity { 113 114 @Override 115 protected void onCreate(Bundle savedInstanceState) { 116 super.onCreate(savedInstanceState); 117 setContentView(R.layout.activity_main); 118 119 final ActionBar actionBar = getActionBar(); 120 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 121 122 actionBar.addTab(actionBar 123 .newTab() 124 .setText("TAB 1") 125 .setTabListener( 126 new MainTabListener<Fragment1>( 127 this, 128 "f1", 129 Fragment1.class 130 ) 131 ) 132 ); 133 actionBar.addTab(actionBar 134 .newTab() 135 .setText("TAB 2") 136 .setTabListener( 137 new MainTabListener<Fragment2>( 138 this, 139 "f2", 140 Fragment2.class 141 ) 142 ) 143 ); 144 } 145 146 public static class MainTabListener<T extends Fragment> 147 implements TabListener { 148 149 private Fragment fragment; 150 private final Activity activity; 151 private final String tag; 152 private final Class<T> cls; 153 154 public MainTabListener( 155 Activity activity, String tag, Class<T> cls){ 156 this.activity = activity; 157 this.tag = tag; 158 this.cls = cls; 159 } 160 161 @Override 162 public void onTabReselected(Tab tab, FragmentTransaction ft) { 163 } 164 165 @Override 166 public void onTabSelected(Tab tab, FragmentTransaction ft) { 167 if(fragment == null){ 168 fragment = Fragment.instantiate(activity, cls.getName()); 169 ft.add(android.R.id.content, fragment, tag); 170 } 171 else{ 172 ft.attach(fragment); 173 } 174 } 175 176 @Override 177 public void onTabUnselected(Tab tab, FragmentTransaction ft) { 178 if(fragment != null){ 179 ft.detach(fragment); 180 } 181 } 182 } 183} 184 185
です。宜しくお願いします
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2014/09/19 14:44