如何使用谷歌应用程序引擎从数据存储区检索信息,并使用Java在Android应用程序的列表视图中显示它?

时间:2012-02-07 08:39:20

标签: java android google-cloud-datastore

我正在尝试创建一个从谷歌应用引擎数据存储中检索信息的Android应用程序,并在Android应用程序中将其显示为列表视图。可以任何人帮我解决一些代码或解释为此目的究竟需要做什么?我已经在服务器端进行了修改,以便在数据存储上存储数据。我不知道如何将这些数据存入android应用程序..我正在使用eclipse indigo和语言是java

编辑:我正在使用我正在使用的代码从数据存储中检索一组字符串并将其放在列表视图中...代码看起来全是乱七八糟但是我请求你忍受并解释如何完全写它..当我到达应该显示检索到的字符串列表的页面时,应用程序强制关闭...

public class Display extends ListActivity
{

    private LayoutInflater mInflater;
    private Vector<RowData> data;
RowData rd;

static String[] title;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.displaylayout);


    MyRequestFactory factory = (MyRequestFactory)Util.getRequestFactory(Display.this,MyRequestFactory.class);
    FebfourthRequest febfourthRequest = factory.febfourthRequest();
    final List<TrialDBProxy> list= new ArrayList<TrialDBProxy>();
       febfourthRequest.queryTrialDBs().fire(new Receiver<List<TrialDBProxy>>() 
    {

        @Override
        public void onSuccess(List<TrialDBProxy> arg0) {
            // TODO Auto-generated method stub
            list.addAll(arg0);
        }   


    });


    for(int i=0;i<list.size();i++)
    {
        title[i] = list.get(i).getMessage();
    }

    mInflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

    data = new Vector<RowData>();

    for(int i=0;i<title.length;i++)
    {
        rd = new RowData(i,title[i]);
        data.add(rd);
    }
    int[] to = new int[] { R.id.text1, R.id.text2 };

    @SuppressWarnings("deprecation")
    Cursor mCursor = this.getContentResolver().query(People.CONTENT_URI, null,      null, null, null);
    ListAdapter adapter = new       SimpleCursorAdapter(this,R.layout.displaylayout,mCursor,title,to);
    setListAdapter(adapter);
    getListView().setTextFilterEnabled(true);

}
private class RowData 
{
protected int mId;
protected String mTitle;

RowData(int id,String title)
{
mId=id;
mTitle = title;

}
    @Override
    public String toString() 
    {
        return mId+" "+mTitle;
    }
}    '

注意:TrialDB是包含我要存储在数据存储区中的所有字段的文件。 displaylayout是我创建了listview的xml文件。 我猜测我必须把代码用于显示东西的主要部分是在onCreate()方法中。 请帮助!

1 个答案:

答案 0 :(得分:2)

这已经是学习 Google App Engine和Android开发的良好起点。

我可以写要遵循的步骤

  1. 编写一个Google App Engine应用程序,该应用程序从数据存储区读取数据并以JSON格式提供。您可以使用GAE Web框架,也可以使用Django。完成后,您将拥有一个URL,可以在浏览器中为您提供数据。
  2. 编写 Android版的hello world应用程序。此步骤为您提供了解和设置Android开发环境的机会。
  3. 编写一个使用列表视图和静态数据的Android应用程序。
  4. 通过从网络上调用一个简单的网址来扩展您的Android应用,然后将其打印在屏幕上。
  5. 通过在您的应用内调用您的Google App Engine应用程序网址来扩展您的应用程序。现在,您可以在应用中获得数据存储数据。
  6. 使用您的数据填充列表视图。