0

我有这个代码:

package com.app.BoomBase;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout;

public class CheckList extends Activity{
ImageButton bAddBoom, bAddTools, bAddCloth, bRemoveBoom, bRemoveTools, bRemoveCloth;



@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.check_list);
    final LinearLayout llBooms = (LinearLayout) findViewById(R.id.llBooms);
    ImageButton bAddBoom = (ImageButton) findViewById(R.id.bAddBoom);


    bAddBoom.setOnClickListener(new View.OnClickListener() {

        @SuppressWarnings("deprecation")
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            AlertDialog alert = new AlertDialog.Builder(CheckList.this).create();
            final EditText input = new EditText(CheckList.this); 
            alert.setTitle("Name of category?");
            alert.setView(input);
            alert.setButton("OK", new DialogInterface.OnClickListener() {
                 public void onClick(DialogInterface dialog, int which) {
                     String userin = input.getText().toString();
                     if(userin != null){
                        return; 
                        }
                        else{   
                        for(int i = 0; i < 1; i++) {
                            CheckBox cb1 = new CheckBox(getBaseContext());
                            cb1.setText(userin+i);
                            cb1.setId(i+1);
                            llBooms.addView(cb1);
                        }
                        }

                    }
                });
                alert.show(); 
            alert.setButton("Cancel", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                }

                });

        }
    });
}

}

而且我无法弄清楚如何使复选框具有变量“userin”的名称..有人可以帮助我吗?另一个问题:我如何处理代码中新创建的复选框,以便我可以检查内容是否被选中?

谢谢 !

4

1 回答 1

1

@Lasse,

您对 Android 编程的理解存在一些“空白”,您必须在继续之前填补这些空白。即使有人真的会回答你,也肯定不会有帮助,因为如果按照你的方式向你的应用程序添加更多代码,几分钟后同样的问题会再次发生。

我不想冒犯这个答案,但您的问题基本上是:如何在 Android 上调试任何东西?您的问题是要知道是否执行某些代码以及为什么执行某些代码,并且您必须了解如何在编程时始终检查这一点。

所以你应该/可以:

  • 学习如何使用调试器。在 android 中,您可以调试程序并通过逐行运行、访问变量值、表达式等来查看代码是如何执行的。
  • 学习如何跟踪程序,基本上Log.x()像你一样使用,但也打印变量值,检查条件代码的分支等。
  • 学习阅读文档。您实际上使用的setButton(...)是 SDK 3 中已弃用的方法(实际版本是 17...)。了解如何阅读此内容。
  • 遵循 IDE 中的警告并尝试将其全部删除以提高应用程序的质量。
  • 使用 Lint,它会为您提供更多有关应用程序潜在问题的建议。同样,确保在编程时没有 Lint 警告,在发布时更是如此。

这是一个比给你答案更好的建议。

不过,根据我的说法,这里的问题可能有两个原因:

  • 在您的程序中使用 setButton 两次,这将覆盖您的第一个侦听器。
  • 使用未维护的已弃用 API。尝试使用替代它的新方法,事情应该会更好。
于 2013-06-02T20:45:16.490 回答