在 Android 中创建指令对话框
在大多数 android 应用程序中,您一定已经看到,当您打开一个新应用程序时,它会向用户显示一些关于其应用程序功能的说明。在这里,我们将实现相同的功能。这是我们将在此应用程序中构建的示例视频。请注意,我们将使用Java语言来制作这个项目。
分步实施
第 1 步:创建一个新项目
- 打开一个新项目。
- 我们将使用Java语言开发 Empty Activity。保持所有其他选项不变。
- 在您方便的时候命名应用程序。
- 将有两个名为 activity_main.xml 和 MainActivity 的默认文件。Java
如果您不知道如何在 Android Studio 中创建新项目,可以参考如何在 Android Studio 中创建/启动新项目?
步骤 2. 处理 XML 文件
导航到 app > res > layout > activity_main.xml 并将以下代码添加到该文件。下面是 activity_main.xml 文件的代码。
XML
XML
XML
Java
package com.example.instructiondialog;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Dialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// create method
displaydialog();
}
private void displaydialog() {
// Initialize dialog
Dialog dialog=new Dialog(this);
// set view
dialog.setContentView(R.layout.dialog_instruction);
// set layout
dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT
,WindowManager.LayoutParams.MATCH_PARENT);
// Set background
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
// show dialog
dialog.show();
// Initialize and assign variable
View view1=dialog.findViewById(R.id.view1);
View view2=dialog.findViewById(R.id.view2);
View view3=dialog.findViewById(R.id.text_view);
TextView textView=dialog.findViewById(R.id.text_view);
// set text from button instruction
textView.setText("This is Radio Button");
view1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// hide view1
view1.setVisibility(View.INVISIBLE);
// Visible view 2
view2.setVisibility(View.VISIBLE);
// set text for text view instruction
textView.setText("This is Check box");
}
});
view2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// hide view2
view2.setVisibility(View.INVISIBLE);
// Visible view 3
view3.setVisibility(View.VISIBLE);
// set text for text view instruction
textView.setText("This is text view");
}
});
view3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// dismiss dialog
dialog.dismiss();
}
});
}
}
导航到 app > res > layout > 右键单击 > new > layout 资源文件并将其命名为 dialog_instruction。在 dialog_instruction.xml 文件中使用以下代码 -
XML
导航到应用 > 右键单击 > 新建 > android 资源文件并将其命名为 outline.xml。在 outline.xml 文件中使用以下代码 -
XML
步骤 3. 处理Java文件
导航到 MainActivity。 Java文件并在其中使用以下代码。代码中添加了注释以便更好地理解。
Java
package com.example.instructiondialog;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Dialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// create method
displaydialog();
}
private void displaydialog() {
// Initialize dialog
Dialog dialog=new Dialog(this);
// set view
dialog.setContentView(R.layout.dialog_instruction);
// set layout
dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT
,WindowManager.LayoutParams.MATCH_PARENT);
// Set background
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
// show dialog
dialog.show();
// Initialize and assign variable
View view1=dialog.findViewById(R.id.view1);
View view2=dialog.findViewById(R.id.view2);
View view3=dialog.findViewById(R.id.text_view);
TextView textView=dialog.findViewById(R.id.text_view);
// set text from button instruction
textView.setText("This is Radio Button");
view1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// hide view1
view1.setVisibility(View.INVISIBLE);
// Visible view 2
view2.setVisibility(View.VISIBLE);
// set text for text view instruction
textView.setText("This is Check box");
}
});
view2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// hide view2
view2.setVisibility(View.INVISIBLE);
// Visible view 3
view3.setVisibility(View.VISIBLE);
// set text for text view instruction
textView.setText("This is text view");
}
});
view3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// dismiss dialog
dialog.dismiss();
}
});
}
}
这是我们应用程序的最终输出。
输出: