Android应用程序 - 单选按钮,TextView和布局选项

时间:2012-10-09 04:48:56

标签: java android xml radio

我正在创建我的第一个Android应用程序。看起来相当简单。但我是Java和Android的总体菜鸟(我更熟悉C,C ++等)。如果这是有史以来最愚蠢的问题,我很抱歉。无论如何,我按照android开发网站上的步骤进行了操作。

该应用程序应该让该人输入他们的名字,然后点击第一,第二或第三班的单选按钮,当他们点击停机按钮时,他们将被带到另一个页面(活动),显示他们的名字和他们选择的班次,然后显示另一个文本框和时间输入。

到目前为止,我完成了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一起工作感到非常困惑。请帮忙!

2 个答案:

答案 0 :(得分:0)

您必须在Button b1=(Button)findViewById(R.id.Button1)方法

中编写onCreate

这是您没有获得按钮点击事件的原因

类似地为按钮和按钮3编写代码

答案 1 :(得分:0)

您已经将文本框的内容发送到第二个活动了,对吧?然后你只需再做两件事来发送单选按钮状态:

  1. 为单选按钮实现onClick处理程序。你已经为提交按钮做了这个,所以我假设你已经找到了onClick的东西。在onClick单选按钮中,在MainActivity中设置一个变量。

  2. 将无线电标志设置的变量打包到intent的额外数据中,如下所示:

    intent.putExtra("radioButtonState", radioButtonState);
    

    您可以使用相应的intent.getxxxxExtra()函数(例如,如果保存了int,getIntExtra)在第二个活动中阅读结果。