綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] String 轉 INT 問題

[複製連結] 查看: 1159|回覆: 2|好評: 0
跳轉到指定樓層
樓主
ajackk2001 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2014-7-24 09:36

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
各位版上前輩好,小弟最近剛接觸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;
                }

        };
};

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
CarolHsieh | 收聽TA | 只看該作者
發表於 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.                 }
複製代碼
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
CarolHsieh | 收聽TA | 只看該作者
發表於 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 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則