java - 我想在一项 Activity 中显示两个自定义对话

标签 java android android-studio dialog

如何在一个 Activity 中显示两个自定义对话。当我单击一个请求培训时,它必须导航到 Gmail,并且程序必须导航到自定义列表页面。请参见下图。

enter image description here

public void showProcedureDialog (final ArrayList) 过程列表){

  final Dialog dialog = new Dialog(activity);
  dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
  dialog.setContentView(R.layout.procedure_dialog_layout);
  dialog.setCanceledOnTouchOutside(true);

  procedureListView = (ListView) dialog.findViewById(R.id.procedureList);
  procedureListView.setAdapter(new ProcedureAdapter(procedurelist));
  procedureListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {


          String selectedurl =procedurelist.get(position).getURL();  

          Bundle  bundle = new Bundle();
          bundle.putString("url",selectedurl);
          Intent intent = new Intent(getApplicationContext(),ProcedureActivity.class);
          intent.putExtras(bundle);
          startActivity(intent);

          if(dialog!=null){
              dialog.dismiss();
          }

      }
  });

  dialog.show();

public void showRequestTrainingDialog(final ArrayList procedurelist){

  final Dialog dialog = new Dialog(activity);
  dialog.setContentView(R.layout.training_dialog_layout);
  dialog.setCanceledOnTouchOutside(true);


  Bundle bundle = new Bundle();
  bundle.putString("url","https://info.orendatech.com/orenda-training");
  Intent intent = new Intent(getApplicationContext(), RequestTrainingActivity.class);
  intent.putExtras(bundle);
  startActivity(intent);

  if (dialog!=null){
      dialog.dismiss();
  }
  dialog.show();

公共(public)类ProcedureAdapter扩展BaseAdapter{

  private ArrayList<ProcedureRootDto> procedurelist;
  private LayoutInflater inflater;
  private TextView procedurename;

  public ProcedureAdapter(ArrayList<ProcedureRootDto> procedurelist){
      this.procedurelist = procedurelist;
      inflater = LayoutInflater.from(activity);
  }

  @Override
  public int getCount() {
      return (procedurelist == null) ? 0 : procedurelist.size();
  }


  @Override
  public Object getItem(int position) {
      return procedurelist.get(position);
  }

  @Override
  public long getItemId(int position) {
      return position;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {

      if(convertView==null){
          convertView =    inflater.inflate(R.layout.procedure_item_layout,parent,false);
      }

      procedurename = (TextView) convertView.findViewById(R.id.procedurename);
      procedurename.setText(procedurelist.get(position).getName());

      return convertView;
  }

程序运行良好,但单击请求培训也会导航到程序链接

最佳答案

试试这个,

已编辑:

final Dialog dialog = new Dialog(activity);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.procedure_dialog_layout);
dialog.setCanceledOnTouchOutside(true);

procedureListView = (ListView) dialog.findViewById(R.id.procedureList);
procedureListView.setAdapter(new ProcedureAdapter(procedurelist));
procedureListView.setOnItemClickListener(new AdapterView.OnItemClickListener() 
{
  @Override
  public void onItemClick(AdapterView<?> parent, View view, int position, long 
 id) {


      String selectedurl =procedurelist.get(position).getURL();  

      if(positon==1){  /// for procedure click

         Bundle  bundle = new Bundle();
         bundle.putString("url",selectedurl);
         Intent intent = new 
         Intent(getApplicationContext(),ProcedureActivity.class);
         intent.putExtras(bundle);
         startActivity(intent);
     }else{ //// for other click

         Bundle bundle = new Bundle();
         bundle.putString("url","https://info.orendatech.com/orenda- 
         training");
          Intent intent = new Intent(getApplicationContext(), 
          RequestTrainingActivity.class);
          intent.putExtras(bundle);
          startActivity(intent);
     }

      if(dialog!=null){
          dialog.dismiss();
      }

  }
 });

dialog.show();

关于java - 我想在一项 Activity 中显示两个自定义对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51134696/

相关文章:

android - 图片 Asset Studio 在 flutter 项目中不可用

android-studio - Kotlin 'when'-如何在Android Studio中获得 Lint 警告

android - 您需要为您的 APK 使用不同的版本代码,因为您已经拥有版本代码 2 的 APK

Android Studio 网络分析器

java - IntelliJ IDEA 不高亮抛出异常的代码 - 如何打开它?

java - 在java类文件中添加try catch

java - OOP AP CS 练习

java - 为什么 java.util.Scanner 不能将 0700 视为八进制文字?

android - android 中的日期返回 future 日期而不是当前日期

android - 使用 Android MediaPlayer 类播放 URL 中的视频