0

リストビューでいくつかの単純なタグをレンダリングするリストビューを作成しようとしています。これが私のコードです:

package net.mikepearce.theagileguide.fragment;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.text.Html;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import net.mikepearce.theagileguide.R;
import net.mikepearce.theagileguide.ValueActivity;

public class ListManifestoFragment extends ListFragment {

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Set the adapter based on the string-array
        String[] principles = getResources().getStringArray(R.array.manifesto_values);
        ArrayAdapter adapter = new ArrayAdapter<String>(getActivity(), R.layout.list_values, principles )
        {
            @Override
            public View getView(int position, View convertView, ViewGroup parent)
            {
                View row;

                if (null == convertView) {
                    row = mInflater.inflate(R.layout.list_values, null);
                } else {
                    row = convertView;
                }

                TextView tv = (TextView) row.findViewById(android.R.id.text1);
                tv.setText(Html.fromHtml(getItem(position)));

                return row;
            }

        };

        setListAdapter(adapter);

        // Get the list view
        final ListView listView = getListView();
        listView.setTextFilterEnabled(true);

        // When clicked, pass to new Activity with the position as a parameter
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Activity a = getActivity();
                Intent intent = new Intent(view.getContext(), ValueActivity.class);
                intent.putExtra("value_id", position);
                startActivity(intent);
                a.overridePendingTransition(0,0);
            }
        });

    }

}

ここから部分的に取得しました:https://stackoverflow.com/a/9695159/155227

私は Android Dev に非常に慣れていないので、これが私がすべきことであるかどうか、もしそうなら、mInflater がどこから来ているのか、エラーが発生するかどうかわかりません。

誰か助けてくれませんか?

ありがとう、

マイク

4

2 に答える 2

1

mInflaterである必要がありLayoutInflaterます。mInflaterと交換できるはずですgetActivity().getLayoutInflater()

于 2013-06-19T13:09:03.080 に答える
0

ビュー行の下でこのコードを使用します。

LayoutInflater mInflater= ((Activity)context).getLayoutInflater();
于 2013-06-19T13:14:08.157 に答える