package com.inc.increment;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View.OnClickListener;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Increment extends Activity implements OnClickListener {
int a,b;
Button b1,b2;
EditText editText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_increment);
b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(this);
b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_increment, menu);
return true;
}
public void onClick(View v) {
// now perform the increment/decrement
if (R.id.button1 == v.getId()) {
editText = (EditText) findViewById(R.id.timepicker_input);
a=Integer.parseInt(editText.getText().toString());
b=a+1;
String s1 = String.valueOf(b);
editText.setText(s1);
} else if (R.id.button2 == v.getId()) {
editText = (EditText) findViewById(R.id.timepicker_input);
int a=Integer.parseInt(editText.getText().toString());
int b=a-1;
String s1 = String.valueOf(b);
editText.setText(s1);
}
}
}
質問する
2613 次
3 に答える
1
timepicker_input にデフォルト値を設定していますか? アクティビティonCreate中に空白の場合、parseIntがNumberformatexceptionで失敗するため、onclickがエラーになります...
あなたのエラーは何ですか?
于 2012-07-07T06:22:18.263 に答える
1
そのためには以下のコードを使用してください。
public class MainActivity extends Activity implements OnClickListener {
Button b1, b2;
EditText editText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText = (EditText) findViewById(R.id.timepicker_input);
b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(this);
b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.options_menu, menu);
return true;
}
public void onClick(View v) {
// now perform the increment/decrement
if (R.id.button1 == v.getId()) {
if (editText.getText().toString().equals(null)
|| editText.getText().toString().equals("")
|| editText.getText().toString().equals("null")) {
Toast.makeText(this, "Enter Some Value", Toast.LENGTH_SHORT)
.show();
} else {
int a = Integer.parseInt(editText.getText().toString());
int b = a + 1;
String s1 = String.valueOf(b);
editText.setText(s1);
}
} else if (R.id.button2 == v.getId()) {
if (editText.getText().toString().equals(null)
|| editText.getText().toString().equals("")
|| editText.getText().toString().equals("null")) {
Toast.makeText(this, "Enter Some Value", Toast.LENGTH_SHORT)
.show();
} else {
int a = Integer.parseInt(editText.getText().toString());
int b = a - 1;
String s1 = String.valueOf(b);
editText.setText(s1);
}
}
}
}
于 2012-07-07T07:30:52.643 に答える
0
コードにいくつかの変更を加えました。以下のコードを使用すると動作します。
package com.inc.increment;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View.OnClickListener;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Increment extends Activity implements OnClickListener {
int a,b;
Button b1,b2;
EditText editText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_increment);
editText = (EditText) findViewById(R.id.timepicker_input);
b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(this);
b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_increment, menu);
return true;
}
public void onClick(View v) {
// now perform the increment/decrement
if (R.id.button1 == v.getId()) {
a=Integer.parseInt(editText.getText().toString());
b=a+1;
String s1 = String.valueOf(b);
editText.setText(s1);
} else if (R.id.button2 == v.getId()) {
a=Integer.parseInt(editText.getText().toString());
b=a-1;
String s1 = String.valueOf(b);
editText.setText(s1);
}
}
}
クリック時に edittext インスタンスを作成しないでください。oncreate にある必要があります。
于 2012-07-07T06:24:30.287 に答える