📜  在 Android 中创建指令对话框

📅  最后修改于: 2022-05-13 01:54:38.941000             🧑  作者: Mango

在 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();
            }
        });
    }
}

这是我们应用程序的最终输出。

输出: