package com.example.zhang; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends AppCompatActivity { private Button btn_send; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button)findViewById(R.id.btn_zc2); button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { new AlertDialog.Builder(MainActivity.this).setTitle("系统提示").setMessage("注册成功!") .setNegativeButton("确定",new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog,int which){ } }).show(); } }); btn_send = (Button) findViewById(R.id.btn_send); btn_send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ShowActivity.class); startActivity(intent); } }); } }什么是方法什么是组件
时间: 2024-02-15 15:28:06 浏览: 145
在这段代码中,方法指的是 `onCreate()`,`onClick()`等等这些带有关键字 `public` 的代码块,它们用于实现特定的功能。而组件指的是 `Button`,`EditText`等等这些在布局文件中声明的控件,用于与用户交互和显示信息。在代码中,可以通过 `findViewById()` 方法找到布局文件中的组件,并在代码中实现对它们的操作。
相关问题
package com.example.login; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import android.app.AlertDialog; import android.content.DialogInterface; import android.widget.Spinner; import android.widget.Toast;
这是一个 Android 应用程序中的 Java 代码片段,用于实现一个登录功能。它包含了一些 Android 库的导入,如 `AppCompatActivity`,`ListView` 等等。这段代码还实现了与数据库的交互,通过 `SQLiteDatabase`、`Cursor`、`ContentValues` 等类进行数据的增删改查操作。此外,还包含了一些 UI 组件的定义,如 `EditText`、`Button`、`Spinner` 等等。最后,还有一些弹出框的实现,如 `AlertDialog`、`Toast` 等等。
package com.example.photodiary; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends AppCompatActivity { //设置密码 EditText password = findViewById(R.id.edit_view_1); String inputPassword = password.getText().toString(); String correctPassword = "20230523";//正确的密码 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } Button button = findViewById(R.id.button_1); Intent intent = new Intent(this,Diary.class); button.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ if(inputPassword.equals(correctPassword)){ //密码正确,跳转页面 startActivity(intent); }else { //密码错误,弹出窗口提示 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setMessage("密码错误!"); } } } }
在您的代码中可能会发现一些问题,我将对其进行解释和建议:
1. 将设置密码的代码放入 onCreate 方法中
在您的代码中,您在类定义之外声明了一个 EditText 和两个字符串变量,这些变量在 onCreate 方法之前被操作。 但是,在 onCreate 方法之前,视图尚未加载,因此您无法使用 findViewById 方法来获得 EditText 的引用。 因此,您需要将以下代码移动到 onCreate 方法中:
```
//设置密码
EditText password = findViewById(R.id.edit_view_1);
String inputPassword = password.getText().toString();
String correctPassword = "20230523";//正确的密码
```
2. 在 onClickListener 中创建 AlertDialog.Builder
在您的代码中,您在创建 AlertDialog.Builder 对象时未调用 .create() 方法。 此外,您需要在 onClickListener 中创建 AlertDialog.Builder 对象,以便单击按钮时显示警报对话框。 因此,您需要将以下代码移动到 onClickListener 中:
```
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("密码错误!");
builder.create().show();
```
3. 将 startActivity 方法放入 if 语句中
在您的代码中,您在 if 语句之外调用 startActivity 方法。 但是,如果密码不正确,则不应该启动 Diary 活动。 因此,您需要将以下代码移动到 if 语句中:
```
//密码正确,跳转页面
startActivity(intent);
```
根据上述建议,您的代码应该类似于以下内容:
```
public class MainActivity extends AppCompatActivity {
//设置密码
private EditText password;
private String inputPassword;
private String correctPassword = "20230523";//正确的密码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
password = findViewById(R.id.edit_view_1);
Button button = findViewById(R.id.button_1);
Intent intent = new Intent(this, Diary.class);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
inputPassword = password.getText().toString();
if (inputPassword.equals(correctPassword)) {
//密码正确,跳转页面
startActivity(intent);
} else {
//密码错误,弹出窗口提示
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("密码错误!");
builder.create().show();
}
}
});
}
}
```
阅读全文