0

我正在尝试使用 opengl 为 android 制作一个非常简单的 cad 程序。所以我试图弄清楚如何将 x,y,z 浮点值从编辑文本视图输入到数组中。这是我开始的代码,它将显示浮点数组到文本视图,但是当我运行应用程序时,我输入了数字然后它崩溃了。

`公共类 MainActivity 扩展 Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button bline = (Button) findViewById(R.id.line);
    final EditText inPut = (EditText) findViewById(R.id.input);
    final View display =(View ) findViewById(R.id.display);
    final View Info =(View) findViewById(R.id.info);

    bline.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            int i = 0;
            final float[] line = new float[10000];


        ((TextView) Info).setText("Point 1");
        float coords = Float.valueOf(inPut.getText().toString());
        for (i=0;i<line.length-1;i++){
            line[i]=coords;
            }

         ((TextView) display).setText(String.valueOf(line[i]));


        }
    });`
4

2 回答 2

0
 ((TextView) display).setText((int) (line[i]=coords));

这是你的问题。您尝试使用 setText(int resId) 方法并且该字符串 id 不存在。改进去

 line[i] = coords;
 ((TextView) display).setText(String.valueOf(line[i]));
于 2013-05-31T08:04:08.957 回答
0

您的 float 数组的大小为 0,因为您将其实例化为:

final float[] line = new float[i];

其中 i 初始化为 0。然后您尝试为位置 line[0] 分配一个值,但 line[0] 不存在。此外,在您的 for 循环中,您应该在 i 等于 length-1 时停止,而不是长度,否则您将获得 IndexOutOfRange 异常:

 for (i=0;i<line.length;i++){
    line[i]=coords;
 }
于 2013-05-31T08:11:57.053 回答