2013-09-10 3 views
1

Привет, я пытаюсь вставить данные в массив, я запрашиваю данные пользователя вставлять данные в edittext и вставлять кнопки, тогда другой 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]); 
     } 


    } 

}

} 
+0

Где именно ваша проблема? – AlexVogel

ответ

0

Не ясно, что вы пытаетесь достичь, но я понимаю, что вы испытываете трудности в поиске эквивалент в Java System.in и System.out. Вам нужно заменить это текстовое взаимодействие кнопками и текстовыми полями на экране. Существует простой способ подключения кнопок (или любого вида на самом деле) с кодом в вашем классе Activity. Это необходимо установить атрибут (который автоматически делает просмотр доступным для просмотра). Например, макет (res/layout/moda.xml) может иметь кнопку:

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

имя вы даете атрибут может быть любая строка, которая является юридическим Java имя метода. В вашей деятельности, вы должны определить соответствующий метод:

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

Обратите внимание, что хотя название метода (который должен совпадать с именем атрибута) может быть все, что вы выбираете, этот метод должен быть типа public void и имеют один аргумент View.

После этого, это просто вопрос правильной логики того, что вы пытаетесь сделать.

EDIT

По желанию, здесь некоторые примеры кода, которые могут делать то, что вы хотите:

разрешения/макет/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)); 
} 
+0

Привет, Тед Хопп, можете ли вы привести пример? – jhon

+0

@jhon - Я добавил несколько примеров кода. Если вы хотите получать количество элементов для ввода, а затем запрашивать их отдельно, вы можете использовать «Диалог». См. [Документация по диалогам] (http://developer.android.com/guide/topics/ui/dialogs.html) (в частности, раздел [создание пользовательского макета] (http://developer.android. com/guide/topics/ui/dialogs.html # CustomLayout) за то, как вы можете запросить пользователя для каждого номера по очереди. –

+0

спасибо за помощь Тед, пытающийся с диалогами! – jhon

Смежные вопросы