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);

    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);
    }       
  }
}
4

3 に答える 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 に答える