Android 膨胀布局项

Android 膨胀布局项,android,layout-inflater,customdialog,Android,Layout Inflater,Customdialog,如果这个问题是重复的,我很抱歉。 我有一个问题: 我有一个main_layout.xml的main_活动。 我有一个TextView和SeekBar1。 我添加了一个带有自定义对话框布局的菜单,其中有一个seekbar2。 对话框显示带有搜索栏的自定义对话框 执行此操作时: inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R.

如果这个问题是重复的,我很抱歉。 我有一个问题:

我有一个main_layout.xml的main_活动。 我有一个
TextView
SeekBar1
。 我添加了一个带有自定义对话框布局的菜单,其中有一个seekbar2。
对话框
显示带有搜索栏的自定义对话框

执行此操作时:

inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.resize_dialog,null);
seekbar = (SeekBar)findViewById(R.id.seekBar2);

应用程序强制关闭。

替换为以下代码

inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
view = inflater.inflate(R.layout.resize_dialog,null); 
seekbar = (SeekBar)view.findViewById(R.id.seekBar2);
您需要传递
视图的引用才能找到id。

试试这个

 inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 view = inflater.inflate(R.layout.resize_dialog,null); 
 seekbar = (SeekBar)view. findViewById(R.id.seekBar2); 
/**将膨胀视图添加到AlertDialog*/

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(R.string.app_name);
    builder.setView(view);
使用此选项取消对话框。 i、 e dialog.discouse()

使用下面的代码

    private class ViewHolder {          
    SeekBar seekbar ;

}


    public View getView(final int position, View convertView, ViewGroup parent) {
        LayoutInflater mInflater = (LayoutInflater) context
            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

    if(convertView==null)
    {
        convertView=mInflater.inflate(R.layout.resize_dialog, null);
         holder=new ViewHolder();
         holder.seekbar = (SeekBar)convertView.findViewById(R.id.seekBar2);
         convertView.setTag(holder);
          }
      else  
    holder=(ViewHolder) convertView.getTag();


      return convertView;

它是第一次工作。如果我在不关闭应用程序的情况下再次尝试打开对话框,我会遇到另一个问题:“java.lang.IllegalStateException:指定的子项已具有父项。您必须首先对子项的父项调用removeView()
    private class ViewHolder {          
    SeekBar seekbar ;

}


    public View getView(final int position, View convertView, ViewGroup parent) {
        LayoutInflater mInflater = (LayoutInflater) context
            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

    if(convertView==null)
    {
        convertView=mInflater.inflate(R.layout.resize_dialog, null);
         holder=new ViewHolder();
         holder.seekbar = (SeekBar)convertView.findViewById(R.id.seekBar2);
         convertView.setTag(holder);
          }
      else  
    holder=(ViewHolder) convertView.getTag();


      return convertView;