2

初めての Android アプリを作成しています。かなり単純なようです。しかし、私は Java と Android の完全な初心者です (私は C、C++ などに精通しています)。これがこれまでで最もばかげた質問である場合は申し訳ありません。とにかく、Android dev Web サイトの手順に従いました。

このアプリは、ユーザーに名前を入力して 1 番目、2 番目、または 3 番目のシフトのラジオ ボタンをクリックさせることになっています。ダウンタイム ボタンをクリックすると、別のページ (アクティビティ) に移動し、名前とシフトが表示されます。選択され、別のテキスト ボックスと時間入力が表示されます。

これまでのところ、 MainActivity.java を次のようにしました。

package com.cyapps.downtime;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends Activity {
    public final static String EXTRA_MESSAGE = "com.cyapps.downtime.MESSAGE";

    public void clickedButton1(View view) {
        Intent intent = new Intent(this, WinderDTActivity.class);
        EditText editText = (EditText) findViewById(R.id.edit_message);
        String message = editText.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
        startActivity(intent);
    }

    public void clickedButton2(View view) {
        Intent intent = new Intent(this, ClamperDTActivity.class);
        EditText editText = (EditText) findViewById(R.id.edit_message);
        String message = editText.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
        startActivity(intent);
    }

    public void clickedButton3(View view) {
        Intent intent = new Intent(this, OtherDTActivity.class);
        EditText editText = (EditText) findViewById(R.id.edit_message);
        String message = editText.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
        startActivity(intent);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

そして、次のような activity_main.xml :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <EditText
        android:id="@+id/edit_message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="41dp"
        android:ems="10"
        android:hint="@string/edit_message" />

    <RadioButton
        android:id="@+id/radioButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/edit_message"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="26dp"
        android:text="@string/radio_button1" />

    <RadioButton
        android:id="@+id/radioButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/radioButton1"
        android:layout_centerHorizontal="true"
        android:text="@string/radio_button2" />

    <RadioButton
        android:id="@+id/radioButton3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/radioButton2"
        android:layout_centerHorizontal="true"
        android:text="@string/radio_button3" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button2"
        android:layout_centerHorizontal="true"
        android:text="@string/button_send1"
        android:onClick="clickedButton1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button3"
        android:layout_centerHorizontal="true"
        android:text="@string/button_send2"
        android:onClick="clickedButton2" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="40dp"
        android:text="@string/button_send3"
        android:onClick="clickedButton3" />

</RelativeLayout>

名前を入力してシフトをクリックすると、別のアクティビティが表示されるようになりました。このページには、あなたの名前とシフト番号が表示され、その他の情報を書き込むためのテキスト ボックスと、時間の入力と送信ボタンがあります。ボタンの操作方法を知っており、Eclipse のインターフェースで時間入力が表示されます。しかし、ラジオボタンを「送信」してページに表示できるようにする方法と、アクティビティを編集して特定のものを表示する方法がわかりません。よくわかりません。

WinderDTActivity.java は次のようになります。

package com.cyapps.downtime;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class WinderDTActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Get the message from the intent
        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

        // Create the text view
        TextView textView = new TextView(this);
        textView.setTextSize(20);
        textView.setText(message);

        // Set the text view as the activity layout
        setContentView(textView);
    }
}

activity_winder_dt.xml は次のようになります。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >    
</RelativeLayout>

あなたが私を助けてくれるなら、事前にどうもありがとう. 私がどれだけ感謝しているか、あなたにはわからないでしょう。私はこれを理解しようと懸命に努力してきましたが、xml と Java を連携させる方法について完全に混乱しています。助けてください!

4

2 に答える 2

0

あなたはmethidで書かButton b1=(Button)findViewById(R.id.Button1)れてはいけませんonCreate

これが、ボタンクリックイベントを取得していない理由です

同様に、button2 と button3 のコードを記述します

于 2012-10-09T05:09:37.183 に答える
0

すでにテキスト ボックスの内容を 2 番目のアクティビティに送信していますね。次に、ラジオ ボタンの状態を送信するために、あと 2 つのことを行うだけで済みます。

  1. ラジオ ボタンの onClick ハンドラを実装します。送信ボタンについてはすでにそれを行っているので、onClick については理解できたと思います。ラジオ ボタン onClick で、MainActivity に変数を設定します。

  2. 次のように、ラジオ フラグ セットの変数をインテントの追加データにパッケージ化します。

    intent.putExtra("radioButtonState", radioButtonState);
    

    intent.getxxxxExtra()適切な関数を使用して、2 番目のアクティビティで結果を読み取ることができます(getIntExtraたとえば、int を保存した場合)。

于 2012-10-09T06:07:54.103 に答える