保存AlertDialog引用,用于在AlertDialog的view里的按钮点击时关闭这个dialog

public class DawActivity extends AppCompatActivity
{
    private AlertDialog mInstrumentAdderDialog;
 findViewById(R.id.channelRackAdd).setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(DawActivity.this);
                builder.setTitle("请选择乐器");
                ScrollView root = new ScrollView(DawActivity.this);
                LinearLayout container = new LinearLayout(DawActivity.this);
                container.setOrientation(LinearLayout.VERTICAL);
                container.setLayoutParams(new LinearLayout.LayoutParams(
                        LinearLayout.LayoutParams.MATCH_PARENT,
                        LinearLayout.LayoutParams.WRAP_CONTENT
                ));
                TextView tv = new TextView(DawActivity.this);
                tv.setText("外部乐器插件");
                container.addView(tv);
                File[] pluginDirs = App.appFilesDir.listFiles();

                if(pluginDirs !=null && pluginDirs.length>0)
                {
                    for(File f:pluginDirs)
                    {
                        Button instrument = new Button(DawActivity.this);
                        instrument.setText(f.getName());
                        instrument.setOnClickListener(onInstrumentAddListener);
                        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
                        container.addView(instrument,params);
                    }

                }else{Toast.makeText(DawActivity.this,"你还没有乐器,请先在在插件管理导入乐器",Toast.LENGTH_LONG).show();}

                root.addView(container);
                builder.setView(root);
                mInstrumentAdderDialog = builder.create();
                mInstrumentAdderDialog.show();
            }
        });
}
   View.OnClickListener onInstrumentAddListener = new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            String name = ((Button)view).getText().toString();
            addInstrumentUI(name);
            mInstrumentAdderDialog.dismiss();
        }
    };

 

posted on 2025-10-30 13:51  小沙盒工作室  阅读(1)  评论(0)    收藏  举报