0

こんにちは、スタックモブにアイテムをリストビューにクエリさせようとしていますが、リストビューに表示される結果リストを除いてすべてが機能しています。インターネット全体で検索を試みましたが、機能するものは何も見つかりませんでした。Log.i("Tagg", result.get(0).getAddress()); を使用するときのコードは次のとおりです。それは完全に機能し、アドレスを表示するので、リストビューに表示されない理由がわかりませんか?

ResultsActivity.java

public class ResultsActivity extends ListActivity {

            double lon;
            double lat;
            ListAdapter adapter;
            List<RRData> RestR;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                //setListAdapter(new ListAdapter(this, R.layout.resultslist, null));
                setListAdapter(adapter);
                Bundle extras = getIntent().getExtras();
                lon = extras.getDouble("Longitude");
                lat = extras.getDouble("Latitude");
                StackMobGeoPoint sarea = new StackMobGeoPoint(lon, lat);
                StackMobQuery q = new StackMobQuery().fieldIsNearWithinMi("location", sarea, 1110.0); //(lon, lat), distance (miles)
                RRData.query(RRData.class, q, new StackMobQueryCallback<RRData>() {
                      @Override
                      public void success(List<RRData> result) {
                          Log.i("Tagg", result.get(0).getAddress());
                          //adapter = new ListAdapter(ResultsActivity.this, R.layout.resultslist, result);
                          RestR = result;
                          ListAdapter adapter = new ListAdapter(ResultsActivity.this, R.layout.resultslist, RestR);

                        setListAdapter(adapter);
                        adapter.notifyDataSetChanged();
                      }

                      @Override
                      public void failure(StackMobException e) {
                          Log.i("TagError", e.getLocalizedMessage());
                      }
                  });
                setContentView(R.layout.activity_results);
            }

            @Override
            public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.activity_results, menu);
                return true;
            }

        }

RRData.java

public class RRData extends StackMobModel {

    private String name;
    private StackMobGeoPoint location;
    private String Address;
    private String UserName;

    public RRData(String name, StackMobGeoPoint  location,String Address) {
        super(RRData.class);
        this.name = name;
        this.location = location;
        this.Address = Address;
    }
    public String getName() {
        return name;
    }
    public String getAddress(){
        return Address;
    }
    public void setName(String name){
        this.name = name;
    }
    public void setAddress(String address){
        this.Address = address;
    }
    public void setLocation(StackMobGeoPoint location){
        this.location = location;
    }
    public StackMobGeoPoint getLocation() {
        return location;
    }
}

ListAdapter.java public class ListAdapter extends ArrayAdapter {

public ListAdapter(Context context, int textViewResourceId, List<RRData> tasks) {
    super(context, textViewResourceId, tasks);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;
    if (v == null) {
        LayoutInflater vi = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(R.layout.resultslist, null);
    }
    RRData task = getItem(position);
    if (task != null) {
        ((TextView) v.findViewById(R.id.title)).setText(task.getName());
        ((TextView) v.findViewById(R.id.address)).setText(task.getAddress());
        ((TextView) v.findViewById(R.id.distance)).setText(task.getLocation().getQueryDistanceRadians().toString());
        this.notifyDataSetChanged();
    }
    return v;
}

}

4

1 に答える 1

1

私はスタックモブで働いています。

アクティビティは ListActivity をサブクラス化します。これには、レイアウトに ID @android:id/list の ListView が含まれている必要があります。ListView は resultslist と呼ばれているようです。名前を変更してみてください。

詳細については、ListViews に関するこのチュートリアルを確認してください。ListActivity については、セクション 3 で説明します。

乾杯、

カール

于 2013-04-29T18:51:25.233 に答える