4

サーバーにリクエストを送信してjsonをダウンロードし、それをリストビューに解析するフラグメントがあります。どういうわけか、ビューに正しく到達できません。以下は私のアプリの一部です。これは、フラグメントを使用したリストビューの最初のタッチです。何らかの理由でフラグメントの使用のみを許可しているため、アダプターsetAdapterとして''ではなく''を選択しますsetListAdapter

myfragment.java

 public class gallery extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            View myFragmentView = inflater.inflate(R.layout.tab_frag2_layout,
                    container, false);
            return myFragmentView;
        }

    public void onActivityCreated(Bundle savedInstanceState) {
    .........
    .........
    .........
    setAdapter(colorAdapter);

    }

layout.tab_frag2_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:background="#ffffff">

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="@dimen/list_padding"
    android:paddingRight="@dimen/list_padding"
    android:tag="listf" />

</LinearLayout>

私の期待は使用しています

MyListView = (ListView)myFragmentView.findViewById(R.id.list);

ビューを取得するために、しかしそれはそのようには機能しません...今私は私のリストビューを取得して適用したいだけです

MyListView.setAdapter(colorAdapter)それに

助けていただければ幸いです、ありがとう

4

2 に答える 2

8

オプション 1: フラグメント レイアウトは単純な ListView だけで構成されているためです。使用を検討してください

パブリック クラス ギャラリーは ListFragment を拡張します

次に、このコードを使用してリストビューを取得できます。

myFragmentView.getListView()

オプション 2: ニコラウスが述べたように、findViewById を使用する場合はカスタム ID が必要です。

android:id="@+id/listview1"

于 2013-01-29T09:57:28.630 に答える
2

ListFragment を使用したくない場合は、カスタム ID (android:id="@+id/custom_id") を追加する必要があります。その後、findViewById を使用して ListView を見つけることができます。

于 2013-01-29T09:50:16.623 に答える