当前位置: 首页 > 知识库问答 >
问题:

当从活动传递到对话框时,我的数组为空

公冶威
2023-03-14

我正在创建一个对话框警报,该警报将显示一个单选组,根据所选的选项,它将使用一个或另一个数组的内容填充列表。这些数组填充在主活动上,因此它们不为空。我的问题是尝试在对话框中填充列表,数组结果为空,我不知道如何将填充的值传递到那里。

这些是导致问题的行:

adapter = new populateListView(MainActivity.this, all_times_array, all_runtimes_array);

这是我的对话代码:

public void dialog_filter() {

  final String[] grpname = {
   "Today",
   "This Month",
   "This Year",
   "All time"
  };

  AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);

  //alt_bld.setIcon(R.drawable.icon);
  alt_bld.setTitle("See reports from ...");
  alt_bld.setSingleChoiceItems(grpname, -1, new DialogInterface
   .OnClickListener() {
    public void onClick(DialogInterface dialog, int item) {
     time_filter = item;
     System.out.println(time_filter);
     Toast.makeText(getApplicationContext(),
      grpname[item] + " selected", Toast.LENGTH_SHORT).show();


     switch (time_filter) {


      case 3:

       adapter = new populateListView(MainActivity.this, all_times_array, all_runtimes_array);
       bannertext = "Total seizures:" + " " + total_seizures;
       banner.setText(bannertext);
       list.setAdapter(adapter);

       break;

      case 0:
       adapter = new populateListView(MainActivity.this, today_times_array, today_runtimes_array);
       bannertext = "Today seizures:" + " " + today_seizures;
       banner.setText(bannertext);
       list.setAdapter(adapter);
       break;

      case 1:
       adapter = new populateListView(MainActivity.this, month_times_array, month_runtimes_array);
       bannertext = "Month seizures:" + " " + month_seizures;
       banner.setText(bannertext);
       list.setAdapter(adapter);
       break;
      case 2:
       adapter = new populateListView(MainActivity.this, year_times_array, year_runtimes_array);
       bannertext = "Year seizures:" + " " + year_seizures;
       banner.setText(bannertext);
       list.setAdapter(adapter);
       break;


     }
     dialog.dismiss();

    }
   });
  AlertDialog alert = alt_bld.create();
  alert.show();

以下是我的pupulateListView类的方法:

class populateListView extends ArrayAdapter <String>

{

    Context context;
    String [] times;
    String [] runtimes;



    populateListView(Context c,String [] tms, String [] rts)
    {
        super(c, seizure_list2,R.id.firstLine,tms);

        this.context=c;
        this.runtimes=rts;
        this.times = tms;

    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View row = inflater.inflate(seizure_list2,parent,false);
        TextView runtime_text = (TextView) row.findViewById(R.id.secondLine);
        TextView time_text = (TextView) row.findViewById(R.id.firstLine);

        time_text.setText(times[position]);
        runtime_text.setText(runtimes[position]);
        return row;


    }
}

共有1个答案

凌景辉
2023-03-14

只是一个建议!使用单选按钮组创建布局文件,并将此布局设置为警报对话框

 dialog.setContentView(R.layout.yourlayout);

之后,在布局中引用您的无线电组

RadioGroup youradiogroup = (RadioGroup) dialog.findViewById(R.id.youradiogroupID);

并获取所选项目的值

youradiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

        public void onCheckedChanged(RadioGroup group,
                                     int checkedId) {
            if (checkedId == R.id.first_radiobutton) {
                //do something}
            else  if (checkedId == R.id.second_radiobutton) {
                //do something else }
            }
    });

希望它有帮助!

 类似资料:
  • 如何将数据从活动传递到对话框? 有关更多详细信息,请参阅下图:

  • 访客详细信息 我在访问者活动中有一个对话框。当我点击图标,它将重定向到相机活动。然后点击Camera Activity中的Confirm按钮,将意图发送回前一个活动,即访客活动。问题是我应该如何将Camera活动的意图结果传递回Visitor活动中的对话框。意图数据应该放在Pass No Edit文本中。我使用的是材料对话框,没有任何附加到该对话框的片段。这一切都放在访客活动中。谁能帮帮我吗?谢谢

  • 问题内容: 我正在开发一个网站,在该网站上,我在一个表中列出了来自数据库查询的一些预订,并带有来取消特定行上的预订,例如: 我的预订 最好的是,如果我可以使用弹出一条消息,询问用户是否确定要取消预订。我一直在尝试使其工作,但我一直坚持如何创建一个接受参数的jQuery函数,以便我可以替换 与 。 然后,该函数将打开对话框,并将参数10传递给对话框,以便如果用户单击“是”,它将发布href: 我已经

  • 我想问一下如何将值从片段a传递到活动B,然后再传递回片段。我尝试使用bundle来传递值,但是它会给出错误的数据。 非常感谢。

  • 我尝试使用 如有任何帮助,不胜感激,谢谢。

  • 我正在尝试将3D-dulearray传递给另一个活动。我不知道为什么我得到NullpointerException?缺少什么? 主要活动 数据活动(reveiver) 而且我可以肯定的是,3d阵列已经在MainActivity中分配了。我已经测试过了! 如果有人对此有任何解决方案,并且可以回答为什么我得到NullPointerException,那将是很高兴的。 (编辑:NullpointerEx