-1

私はアンドロイドで天気予報プロジェクトをやっています。情報は、静的で都市のリストを含む特定の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]);
        }
    }
}
}

問題はどこだ?

4

3 に答える 3

2

もちろんmain()、Androidではメソッドはサポートされていません。

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
    }
}
于 2012-12-07T00:11:09.650 に答える
2

活動を検索します。Android では、Activity を拡張するクラスを作成する必要があります。main()メソッドに相当するのはOnCreate()メソッドです。この方法では、レイアウトを次のように設定できますsetContentView(layout id)

于 2012-12-07T00:06:44.340 に答える
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() { } 

AndroidDevelopersSiteで対応するドキュメントを確認する必要があります。

于 2012-12-07T00:11:08.437 に答える