1

嗨,我正在尝试在数组上插入数据,我请求用户在 edittext 上插入数据并插入一个按钮,然后其他 edittext 获取用户想要插入数据和数组的次数,将进行跟踪,其他 edittext 将去询问数据给用户。这就是我所拥有的。

我可以在 java 上做到这一点,但我不能在 android 上做到这一点。

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.moda);

    findViewById(R.id.num1);
    findViewById(R.id.num2);
    findViewById(R.id.tvresultado);

    /*Scanner numero = new Scanner(System.in);
    int valor;

    System.out.print("introduzca un valor");
    valor = numero.nextInt();*/

}

public void ingresar(){

    EditText num1 = (EditText)findViewById(R.id.num1);
    EditText num2 = (EditText)findViewById(R.id.num2);
    TextView total = (TextView)findViewById(R.id.tvresultado);
    if(num1.length() <= 0 || num2.length() <=0){
        Toast toast =
                Toast.makeText(getApplicationContext(), "Introduce un valor", Toast.LENGTH_SHORT);
        toast.show();
    }else{

        int dbnum1 = Integer.parseInt(num1.getText().toString());//toma el numero de datos a ingresar
        int dbnum2 = Integer.parseInt(num2.getText().toString());
        int vector[]={dbnum1};
        int i;
        //boolean sw;
        //DataInputStream oCadena;

        vector=new int[dbnum1];
        //oCadena = new DataInputStream(System.in);

        //System.out.println("Ingrese el numero de datos");

        for(dbnum2=0;dbnum2<=vector.length;dbnum2++){
            System.out.println(""+vector[dbnum2]);
        }


    }

}

}
4

1 回答 1

0

目前尚不清楚您要完成什么,但我认为您很难找到与 JavaSystem.inSystem.out. 您需要将这种基于文本的交互替换为屏幕上的按钮和文本字段。有一种简单的方法可以将按钮(实际上是任何视图)与Activity类中的代码连接起来。这是设置一个android:onClick属性(自动使视图可点击)。例如,您的布局 ( res/layout/moda.xml) 可能有一个按钮:

<Button
    android:text="@string/ingrese"
    android:onClick="ingresar"
    . . . />

您为android:onClick属性指定的名称可以是任何合法的 Java 方法名称的字符串。在您的活动中,您将定义相应的方法:

public void ingresar(View view) {
    // read and process the data in the text fields
}

请注意,尽管方法的名称(必须与android:onClick属性的名称相匹配)可以是您选择的任何名称,但该方法必须是类型public void并且只有一个View参数。

在那之后,只需让逻辑适合您尝试做的事情。

编辑

根据请求,这里有一些示例代码可能会执行您想要的操作:

res/layout/moda.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

        <EditText
            android:id="@+id/num1"
            android:inputType="number"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            />

        <EditText
            android:id="@+id/num2"
            android:inputType="number"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            />

        <TextView
            android:id="@+id/resultado"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/ingrese"
            android:onClick="ingresar"
            />
</LinearLayout>

MyActivity.java中:

public void ingresar(View view) {
    EditText num1 = (EditText)findViewById(R.id.num1);
    EditText num2 = (EditText)findViewById(R.id.num2);
    TextView total = (TextView)findViewById(R.id.tvresultado);
    if (num1.length() <= 0 || num2.length() <=0) {
        Toast.makeText(this, "Introduce un valor", Toast.LENGTH_SHORT)
             .show();
        return;
    }
    int dbnum1 = Integer.parseInt(num1.getText().toString());
    int dbnum2 = Integer.parseInt(num2.getText().toString());
    total.setText(String.valueOf(dbnum1 + dbnum2));
}
于 2013-09-10T18:20:06.180 回答