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