を拡張するクラスがあり、 listview_layout.xmlFragmentActivity
を含むレイアウト xml ファイルもあります。ListView
<LinearLayout
android:layout_width="310dip"
android:layout_height="fill_parent"
android:background="#000000"
android:orientation="vertical"
android:paddingLeft="15dp"
android:paddingRight="15dp" >
<ListView
android:id="@+id/menuList"
android:layout_width="310dip"
android:layout_height="wrap_content"
android:background="#00FFFF"
android:dividerHeight="2dip" />
</LinearLayout>
<FrameLayout
android:id="@+id/overlay"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
ListView
、menuListのIDに注意してください
私の Java コードから、このリストビューを次のように取得します。
private View getElementFromView(int layout, int element) {
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(layout, null);
return view.findViewById(element);
}
このメソッドは を返します。これが のインスタンスであるView
かどうかを確認するためにチェックを行います。View
ListView
View v = getElementFromView(R.layout.listview_layout, R.id.menuList);
if(v instanceof ListView) {
Log.v("View: ", "This view is an instance of a ListView");
ListView lv = (ListView)v;
String[] listItems = {"Item 1", "Item 2", "Item 3", "Item 4"};
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems));
}
ご覧のとおり、これに を設定したいAdapter
ので、アイテム 1、アイテム 2 などのテキストListView
を入力する必要があります。ListView
私が理解していないのは、リストビューがまったく表示されない理由です? ListView
がまったく読み込まれていないためだと思いますが、なぜ読み込まれていないのですか?
編集:
このプロジェクトはライブラリとしてマークされていることにも言及する必要があります。これは興味深い部分ですBaseWindow.java
public class BaseWindow extends SlidingFragmentActivity {
public void InitializeWindow(Activity act, int layoutResourceId, int menuResourceId, String windowTitle) {
super.setContentView(layoutResourceId);
super.setBehindContentView(R.layout.menu_frame);
this.menuResourceId = menuResourceId;
this.act = act;
initializeSlidingMenu();
setWindowTitle(windowTitle);
}
public void initializeSlidingMenu() {
this.setSlidingActionBarEnabled(true);
this.setSlidingActionBarEnabled(true);
getSlidingMenu().setBehindOffsetRes(R.dimen.actionbar_home_width);
getSlidingMenu().setShadowWidthRes(R.dimen.shadow_width);
getSlidingMenu().setShadowDrawable(R.drawable.shadow);
getSlidingMenu().setMenu(R.layout.listview_layout);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
getSlidingMenu().setBehindScrollScale(0.25f);
View v = getElementFromView(R.layout.listview_layout, R.id.menuList);
if(v instanceof ListView) {
Log.v("View: ", "This view is an instance of a ListView");
ListView lv = (ListView)v;
String[] listItems = {"Item 1", "Item 2", "Item 3", "Item 4"};
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems));
//lv.setAdapter(new MenuAdapter(this, menuResourceId));
}
}
}
このクラスは私のワークスペースの別のプロジェクトから呼び出されます。はい、クラス/プロジェクトをライブラリとして含めました:
public class MainActivity extends BaseWindow {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.InitializeWindow(MainActivity.this, R.layout.activity_main, R.menu.slide_menu, "Home");
}
}
すべてがうまく機能しますが、リストビューには何も入力されていません。これにより、何を達成しようとしているのかについてのアイデアが得られることを願っています。