ゴール
scrollViewに(ListViewではなく)リストが必要です
問題
ScrollViewのListViewが機能しない
考えられる解決策
解決策は次のことを行うことだと思います。
- AdapterViewを拡張するクラスを作成します
- XMLレイアウトでクラスを設定します
- adapterViewにアダプターを入力します。
ソリューションの問題
拡張AdapterViewをxmlレイアウトに配置すると、アプリがクラッシュします。
エラー:10-04 16:02:14.396:W / ActivityManager(2119):ActivityRecord{422c1838パッケージ/.activities.SelectWorkplaceActivity}のアクティビティ一時停止タイムアウト
質問
ここで何が問題になっていますか?
アダプターを使用してスクロール不可能なリストを作成するためのより良い方法はありますか?
コード
景色:
public class BasicListView extends AdapterView<ListAdapter> {
private String tag = "BasicListView";
private ListAdapter mAdapter;
private DataSetObserver mDataSetObserver;
private Context mContext;
public BasicListView(Context context) {
super(context);
mContext = context;
}
public BasicListView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
}
public BasicListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mContext = context;
}
@Override
public ListAdapter getAdapter() {
return mAdapter;
}
@Override
public View getSelectedView() {
Log.i(tag, "getSelectedView not available");
return null;
}
@Override
public void setAdapter(ListAdapter adapter) {
if(mAdapter != null)
{
mAdapter.unregisterDataSetObserver(mDataSetObserver);
}
mAdapter = adapter;
requestLayout();
}
@Override
public void setSelection(int position) {
Log.i(tag, "setSelection not available");
}
}
そしてXMLレイアウト:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Code scannen" />
<Button
android:id="@+id/btn_scan_code"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="Scan werkplek" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Code handmatig invoeren" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<EditText
android:id="@+id/et_type_code"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10" >
</EditText>
<Button
android:id="@+id/btn_send_code"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Verzenden" />
</LinearLayout>
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_current_sessions"
/>
<package.views.BasicListView
android:id="@+id/current_sessions"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</package.views.BasicListView>
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:text="@string/label_favorite_workplaces"
/>
<ListView
android:id="@+id/favorite_workplaces"
android:layout_width="match_parent"
android:layout_height="193dp"
/>
</LinearLayout>
</ScrollView>
<include
android:layout_width="match_parent"
android:layout_height="wrap_content"
layout="@layout/actionbar" />
さらに詳しい情報が必要な場合は、お問い合わせください:)