Regist

主要代码:

activity_main.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

<LinearLayout 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" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world"
            tools:context=".MainActivity" />

        <EditText
            android:id="@+id/edittext1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textView1" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/edittext1"
            android:text="@string/sex"
            tools:context=".MainActivity" />

        <RadioGroup
            android:id="@+id/radioGroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <RadioButton
                android:id="@+id/radioButton1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="男" />

            <RadioButton
                android:id="@+id/radioButton2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="女" />
        </RadioGroup>

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/birthday"
            tools:context=".MainActivity" />

        <DatePicker
            android:id="@+id/datePicker1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hobby"
            tools:context=".MainActivity" />

        <CheckBox
            android:id="@+id/checkBox1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="看电影" />

        <CheckBox
            android:id="@+id/checkBox2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="打篮球" />
         <CheckBox
            android:id="@+id/checkBox3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="逛街" />
          <CheckBox
            android:id="@+id/checkBox4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="打羽毛球" />

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="提交" />
    </LinearLayout>


</LinearLayout>
</ScrollView>


MainActivity.java

package com.example.register;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends Activity {
	private EditText editText1;
	private RadioButton radioButton1;
	private RadioButton radioButton2;
	private RadioGroup radioGroup;
	private DatePicker datePicker;
	private CheckBox checkBox1;
	private CheckBox checkBox2;
	private CheckBox checkBox3;
	private CheckBox checkBox4;
	private Button button;
	String sex;
	String hobby;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 初始化组件
		editText1 = (EditText) this.findViewById(R.id.edittext1);
		radioButton1 = (RadioButton) this.findViewById(R.id.radioButton1);
		radioButton2 = (RadioButton) this.findViewById(R.id.radioButton2);
		radioGroup = (RadioGroup) this.findViewById(R.id.radioGroup);
		datePicker = (DatePicker) this.findViewById(R.id.datePicker1);
		checkBox1 = (CheckBox) this.findViewById(R.id.checkBox1);
		checkBox2 = (CheckBox) this.findViewById(R.id.checkBox2);
		checkBox3 = (CheckBox) this.findViewById(R.id.checkBox3);
		checkBox4 = (CheckBox) this.findViewById(R.id.checkBox4);
		
		button = (Button) this.findViewById(R.id.button1);
		// 注册事件监听器
		radioGroup
				.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

					@Override
					public void onCheckedChanged(RadioGroup group, int checkedId) {
						if (R.id.radioButton1 == checkedId)
							sex = "男";
						if (R.id.radioButton2 == checkedId)
							sex = "女";
					}
				});
		button.setOnClickListener(new ButtonHandler());
	}

	// 定义事件处理类
	private class ButtonHandler implements OnClickListener {
		@Override
		public void onClick(View v) {
			AlertDialog.Builder registDialog = new AlertDialog.Builder(
					MainActivity.this);
			String editString = editText1.getText().toString();
			String date = datePicker.getYear() + "年" + datePicker.getMonth()
					+ "月" + datePicker.getDayOfMonth() + "日";
			if (checkBox1.isChecked()) {
				hobby = hobby + "," + checkBox1.getText();
			}
			if (checkBox2.isChecked()) {
				hobby = hobby + "," + checkBox2.getText();
			}
			if (checkBox3.isChecked()) {
				hobby = hobby + "," + checkBox3.getText();
			}
			if (checkBox4.isChecked()) {
				hobby = hobby + "," + checkBox4.getText();
			}
			Toast.makeText(
					MainActivity.this,
					"注册成功!\n您的姓名:" + editString + "\n您的性别是:" + sex + "\n您的生日是:"
							+ date + "\n您的爱好:" + hobby, Toast.LENGTH_LONG)
					.show();
		}

	}

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

}


strings.xml

<resources>

    <string name="app_name">Register</string>
    <string name="hello_world">请输入您的姓名:</string>
    <string name="sex">请输入您的性别:</string>
    <string name="birthday">请输入您的生日:</string>
     <string name="hobby">请输入您的兴趣爱好:</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>

</resources>


主要运行图:

### Android 广播的注册 广播接收器可以在应用程序中通过两种方式进行注册: #### 动态注册 在代码中创建 `BroadcastReceiver` 的实例并调用 `registerReceiver()` 方法来完成动态注册。这种方式允许应用更灵活地控制广播接收的时间范围,在不需要监听特定事件的时候可以及时注销,节省资源。 ```java // 创建广播接收者对象 MyBroadcastReceiver receiver = new MyBroadcastReceiver(); IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); context.registerReceiver(receiver, filter); // 注册广播接收者 ``` 此过程应当注意权限声明以及确保在适当时候调用 `unregisterReceiver()` 来解除不再使用的广播连接[^1]。 #### 静态注册 另一种是在 `AndroidManifest.xml` 文件里定义 `<receiver>` 节点实现静态注册。这使得即使程序未启动也能接收到指定类型的广播消息。对于希望始终对外部变化保持敏感的应用场景非常有用。 ```xml <receiver android:name=".MyBatteryInfoReceiver"> <intent-filter> <action android:name="android.intent.action.BATTERY_OKAY"/> </intent-filter> </receiver> ``` 上述配置会告诉系统当遇到匹配的动作时唤醒对应组件处理相应逻辑。 ### Qt 中自定义数据类型作为参数传递给槽函数前需做准备 为了使自定义的数据结构能够在Qt框架下的信号与槽机制间正常流通,则要先利用宏命令对其进行元类型系统的登记操作。例如下面的例子展示了怎样让名为 `MyStruct` 的复合型能在不同部分之间顺利传输而不丢失信息[^2]: ```cpp qRegisterMetaType<MyStruct>("MyStruct"); ``` 这段语句应该放置于main() 函数或者任何其他合适的位置以保证在整个项目生命周期内有效执行一次即可。 ### Vue 组件全局注册示例 对于前端开发而言,构建可重用UI部件是提高效率的重要手段之一;而在Vue.js环境中可以通过简单的API接口快速建立可供整个页面访问的基础单元——即所谓“全局组件”。如下所示为一段典型写法用于展示按钮点击计数功能的小工具[^3]: ```javascript Vue.component('button-a', { template: '\n' + ' <button @click="count++">{{ count }}</button>\n', data: function () { return { count: 0 } }, }); ``` 以上就是针对不同类型技术栈下关于“注册”的概念解析及其具体实践指导说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值