我正在安装android的天气项目。该信息来自给定的URL,该URL是静态的并且包含城市列表。例如:HTTP://myexample/info/?cities
显示城市列表。 HTTP://myexample/info/?tokyo
将显示:日本东京。
我已完成布局以记下要执行的城市的名称:
xmlns:tools=["http://schemas.android.com/tools"]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Meteo" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="40dp"
android:weightSum="4">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="3">
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/soleil" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="4">
<EditText
android:id="@+id/editText1"
android:layout_width="170dp"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button" />
</LinearLayout>
但是Java程序没有执行。只执行布局:
public class Demo {
public static void main(String[] args) {
// URL
String url = "$HTTP://myexample/info/?cities$";
// Weather information
String weather = "Tokyo, Japan#15.5#Sun ##";
// Get the city name
String city = url.substring(url.indexOf("?") + 1).trim();
System.out.println(city);
// Check the weather of the city: 15.5#Sun
// Remove city name
// Remove last #
if (weather.toLowerCase().contains(city.toLowerCase())) {
// Get condition:
String condition = weather.substring(weather.indexOf("#") + 1,
weather.length() - 2);
System.out.println(condition);
// Split with # sign and you have a list of conditions
String[] information = condition.split("#");
for (int i = 0; i < information.length; i++) {
System.out.println(information[i]);
}
}
}
}
问题出在哪里?
答案 0 :(得分:2)
查找Activities。在Android中,您必须创建一个扩展Activity的类。等同于main()
方法的是OnCreate()
方法。在此方法中,您可以使用setContentView(layout id)
答案 1 :(得分:2)
main()
方法。
public static void main(String[] args) {
// ....
}
改为使用Activity
。
public class MyActivity extendsActivity
{
@Override
protected void onCreate(Bundle saveInstance)
{
// This method will be called first
super.onCreate(saveInstance);
// Your definition
}
}
答案 2 :(得分:1)
您的主要问题是您尝试将 Android 应用程序作为 Java 应用程序运行。
public static void main(String[] args)
是 Java 应用程序的标准入口点。
在 Android 中,情况略有不同。
首先,课程演示必须扩展活动:
public class Demo extends Activity
其次,您必须实现特殊方法,这些方法在应用程序的生命周期的特定时刻调用,最重要的是:
public void onCreate(Bundle savedInstanceState) { }
protected void onPause() { }
protected void onResume() { }
您应该查看Android Developers Site上的相应文档。