列表项中的警报对话框单击侦听器



我有一个包含一些值的列表视图。我需要在列表视图的项目点击上生成一个对话框。我的问题是,当单击列表视图中的任何项目时,对话框显示的数量等于列表视图中项目的数量。我只想在每次点击项目时只有一个对话框,它显示相应的项目详细信息。

    public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    // TODO Auto-generated method stub

    float due = (float) 0.0;
if(list != null){
         for(int i = 0; i< list.getChildCount();i++){
             View vie = list.getChildAt(i); 
        TextView amt = (TextView) vie.findViewById(R.id.amt);
        TextView alloc = (TextView) vie.findViewById(R.id.alloc);
        EditText ed = (EditText) vie.findViewById(R.id.edit);
        String amnt = amt.getText().toString();
        String allc = alloc.getText().toString();

      // due amount is net amount minus allocation amount  
        due = Float.valueOf(amnt) - Float.valueOf(allc);

        AlertDialog.Builder alertDial = new AlertDialog.Builder(Collection.this);
        LayoutInflater inflater=Collection.this.getLayoutInflater();
        //this is what I did to added the layout to the alert dialog
        View layout=inflater.inflate(R.layout.alert_layout,null);       
        alertDial.setView(layout);
        final TextView dues=(TextView)layout.findViewById(R.id.textViewdue);
        final EditText received=(EditText)layout.findViewById(R.id.rcvd);
        dues.setText("Float.toString(due)");
        AlertDialog alertDialog = alertDial.create();
          // show alert
          alertDialog.show(); 
    }   
}
}

而且我也无法在对话框中的编辑文本中输入值。请帮帮我。

您不需要使用for循环。您得到的点击项目为View view。尝试以下代码

    public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    // TODO Auto-generated method stub

    float due = (float) 0.0;
if(list != null){

        TextView amt = (TextView) view.findViewById(R.id.amt);
        TextView alloc = (TextView) view.findViewById(R.id.alloc);
        EditText ed = (EditText) view.findViewById(R.id.edit);
        String amnt = amt.getText().toString();
        String allc = alloc.getText().toString();

      // due amount is net amount minus allocation amount  
        due = Float.valueOf(amnt) - Float.valueOf(allc);

        AlertDialog.Builder alertDial = new AlertDialog.Builder(Collection.this);
        LayoutInflater inflater=Collection.this.getLayoutInflater();
        //this is what I did to added the layout to the alert dialog
        View layout=inflater.inflate(R.layout.alert_layout,null);       
        alertDial.setView(layout);
        final TextView dues=(TextView)layout.findViewById(R.id.textViewdue);
        final EditText received=(EditText)layout.findViewById(R.id.rcvd);
        dues.setText("Float.toString(due)");
        AlertDialog alertDialog = alertDial.create();
          // show alert
          alertDialog.show(); 
    }   
}

试试这个

if(posstion==0){
//showYourDialog have value 0
}else if(posstion==1){
//showYourDilog have value 1
}

希望!它可以帮助您

不要在onItemClick中使用for循环。移除for循环,就可以从方法参数中获取视图对象。

parent.getItemAtPosition(position));

最新更新