【发布时间】:2012-11-02 18:26:25
【问题描述】:
我看过很多关于这个的问题/教程,但他们都使用某种预制数据库或使用 JSON。
我已经在我的MySQL 服务器上创建了一个包含simlpe 数据的数据库和一个表,该服务器在我的开发机器上作为服务单独运行。
我想从该表中提取数据,并在我的 Andoird 应用程序启动时(onCreate)将其列在 ListView(MainActivity) 中。
目前我正在使用预先制作的汽车名称列表。
汽车表(在 mydb 数据库中)
id、name、model、year、vin、km、price
MainActivity.java
package com.example.myfirstproject;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
public class MainActivity extends Activity implements OnItemClickListener {
protected String[] cars = {"BMW", "Audi", "VW", "Ford", "Subaru"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, cars);
ListView carsList = (ListView) findViewById(R.id.listCars);
carsList.setAdapter(adapter);
ListView list = (ListView) findViewById(R.id.listCars);
list.setOnItemClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent intent = new Intent(this, DetailsActivity.class);
startActivity(intent);
}
}
【问题讨论】:
-
好吧,您必须将数据从数据库服务器传输到您的 Android 设备。不幸的是,最好的选择是 JSON 和数据库的 REST 接口。
-
您必须创建一个 Web 服务,该服务将从 mysql 向您返回数据。你可以阅读this 教程。我尝试使用 mysql 连接器,但它不适用于 android。
-
服务器端,使用 JSON。那么我的建议是使用
AsyncTask见example here。反正我就是这样做的 -
@AdrianC。有趣的教程。我会使用它,但 Android 代码看起来像 Visual Basic。什么给了?
-
Basic4Android,这就是你看到visual basic的原因。并回答您的第二个问题:REST(REpresentational State Transfer)定义了一组架构原则,您可以根据这些原则设计 Web 服务。您可以在 grails 中完成 Web 服务,或者拥有将返回 json 的 php 脚本。阅读 Android 部分的 Asok 教程和 this 的 php 部分,这将是您的 Web 服务。
标签: android