Android 台灣中文網

標題: String 轉 INT 問題 [打印本頁]

作者: ajackk2001    時間: 2014-7-24 09:36
標題: String 轉 INT 問題
各位版上前輩好,小弟最近剛接觸JAVA跟Android,再寫一個類似訂購票小程式碰上轉換的問題以下是我程式碼
在第一個判斷名稱的地方能過,但是到數量的部分 只要沒寫入數字按下Button就是出現錯誤,只要填入資料就可以正常
我看LOG 出現說INT的錯誤,我預想說 因該是空白的關係 導致轉換出現問題...不過小弟不知道要怎麼把空白的問題排除
希望有板大能給關鍵字 在此感謝
package com.example.test;

import java.nio.Buffer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.R.integer;
import android.app.Activity;
import android.os.Bundle;
import android.renderscript.Sampler.Value;
import android.text.Editable;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.BounceInterpolator;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                init();

        }

        private EditText et1, et2;
        private TextView txt;
        private Button but;

        private void init() {
                // TODO Auto-generated method stub
                et1 = (EditText) this.findViewById(R.id.editText1);
                et2 = (EditText) this.findViewById(R.id.editText2);
                txt = (TextView) this.findViewById(R.id.textView3);
                but = (Button) this.findViewById(R.id.button1);

                but.setOnClickListener(onClic);
        }

        private OnClickListener onClic = new OnClickListener() {

                @Override
                public void onClick(View v) {
                        // TODO Auto-generated method stub
                        getAccountPass();
                        boolean b = verify(u1, p1);

                }

                private String u1, p1, t2;

                private void getAccountPass() {

                        u1 = et1.getText().toString();
                        p1 = et2.getText().toString();
                        t2 = txt.getText().toString();
               
                }

                private boolean verify(String u1, String p1) {

                        int nu = Integer.parseInt(p1);
                        
                        if (u1.length() == 0) {
                                txt.setText("請輸入名稱");
                                return false;
                        } else if (p1.length() == 0) {
                                txt.setText("請輸入數量");
                                return false;
                        }
                        else if(nu > 10){
                                txt.setText("只能訂購10張");
                                return false;
                        }
                                
                        txt.setText(null);
                        Toast.makeText(MainActivity.this, "訂購完成", Toast.LENGTH_LONG).show();
                        return true;
                }

        };
};


作者: CarolHsieh    時間: 2014-7-24 15:28
  1. private boolean verify(String u1, String p1) {
  2. if(!p1.equals("")&&!u1.equals(""))
  3. {
  4.                         int nu = Integer.parseInt(p1);
  5.                         
  6.                         if (u1.length() == 0) {
  7.                                 txt.setText("請輸入名稱");
  8.                                 return false;
  9.                         } else if (p1.length() == 0) {
  10.                                 txt.setText("請輸入數量");
  11.                                 return false;
  12.                         }
  13.                         else if(nu > 10){
  14.                                 txt.setText("只能訂購10張");
  15.                                 return false;
  16.                         }
  17.                                 
  18.                         txt.setText(null);
  19.                         Toast.makeText(MainActivity.this, "訂購完成", Toast.LENGTH_LONG).show();
  20.                         return true;
  21. }
  22.                 }
複製代碼

作者: CarolHsieh    時間: 2014-7-24 15:31
或者試試看這樣寫
要在string 轉 int 前先檢查string 有沒有值

  1. private boolean verify(String u1, String p1) {                     
  2.                         
  3.                         if (u1.length() == 0) {
  4.                                 txt.setText("請輸入名稱");
  5.                                 return false;
  6.                         } else if (p1.length() == 0) {
  7.                                 txt.setText("請輸入數量");
  8.                                 return false;
  9.                         }
  10.                         else{
  11. int nu = Integer.parseInt(p1);
  12. if(nu > 10){

  13.                                 txt.setText("只能訂購10張");
  14.                                 return false;
  15. }
  16.                         }
  17.                                 
  18.                         txt.setText(null);
  19.                         Toast.makeText(MainActivity.this, "訂購完成", Toast.LENGTH_LONG).show();
  20.                         return true;

  21.                 }
複製代碼





歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1