Android 在edittext上的数组文本输入中插入数据

Android 在edittext上的数组文本输入中插入数据,android,performance,Android,Performance,您好,我正在尝试在数组中插入数据,我请求用户在edittext中插入数据,并使用“插入”按钮,然后其他edittext获取用户希望插入数据和数组的次数, 将进行跟踪,另一个edittext将向用户请求数据。这就是我所拥有的 我可以在java上做,但在android上做不到 protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(sa

您好,我正在尝试在数组中插入数据,我请求用户在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]);
        }


    }

现在还不清楚您想要实现什么,但我想您很难找到与Java的
System.in
System.out
相当的版本。您需要将这种基于文本的交互替换为屏幕上的按钮和文本字段。有一种简单的方法可以将按钮(实际上是任何视图)与
活动
类中的代码连接起来。这是为了设置一个
android:onClick
属性(自动使视图可单击)。例如,您的布局(
res/layout/moda.xml
)可能有一个按钮:

<Button
    android:text="@string/ingrese"
    android:onClick="ingresar"
    . . . />
请注意,尽管方法的名称(必须与
android:onClick
属性的名称匹配)可以是您选择的任何名称,但该方法的类型必须为
public void
,并且只有一个
View
参数

在那之后,你要做的只是让你的逻辑正确

编辑

对于每个请求,以下是一些示例代码,它们可能会满足您的要求:

res/layout/moda.xml:


在MyActivity.java中:

public void入口(视图){
EditText num1=(EditText)findViewById(R.id.num1);
EditText num2=(EditText)findViewById(R.id.num2);
TextView总计=(TextView)findViewById(R.id.tvresultado);

如果(No.1.长度)(你的问题到底在哪里?嗨,Ted Hopp,你能举个例子吗?)JHON-I添加了一些示例代码。如果你想接收要输入的项目的数量,然后分别要求每个项目,你可以考虑使用<代码>对话框<代码>。(特别是关于如何依次提示用户输入每个数字的部分。
<Button
    android:text="@string/ingrese"
    android:onClick="ingresar"
    . . . />
public void ingresar(View view) {
    // read and process the data in the text fields
}
<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>
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));
}