用Android實現串掃描操作,將帶有“111”字符的輸出1,否則輸出0

大體思路就是,先寫出一個editext用來獲取文本內容,再寫出一個textview用來顯示我們同步生成的文本。

然後我們要調用系統的textWatcher的函數,然後會出現三個複習的子類:

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

}

@Override
public void afterTextChanged(Editable s) {

 }
這三個子類顯然能看出,分別是在輸入前,和輸入中的,和輸入後的函數,所以我們只需要在複寫出的

第三個函數中 寫上我們的有關算法的代碼即可,即:


@Override
public void afterTextChanged(Editable s) {

    String result = "00";
    String str = editText.getText().toString();

    char[] b = new char[str.length()];

    for (int i = 0; i < str.length(); i++) {

        b[i] = str.charAt(i);

    }

    for (int j = 0; j < b.length - 2; j++) {
        if (Integer.parseInt(""+b[j])==1&&Integer.parseInt(""+b[j+1])==1&&Integer.parseInt(""+b[j+2])==1){
            result = result + "1";
        } else {
            result = result + "0";


        }

    }


    textView.setText(result);

}

這樣我們便能實現我們想要得到的功能。

//與此同時我們需要注意到的就是

String str = editText.getText().toString();//獲取editext的文本內容
Integer.parseInt(""+b[j])==1  //當要做判斷的時候應將數據類型統一
char[] b = new char[str.length()];

for (int i = 0; i < str.length(); i++) {

    b[i] = str.charAt(i);

}  //將一個string類型的數據一個一個的傳入到char[]b的數組之中,從而獲得一個數組類型


全部代碼如下:

Mainactivity:

package com.example.lin_sir.scanning;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private EditText editText;
    private TextView textView;
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = (EditText) findViewById(R.id.editText);
        textView = (TextView) findViewById(R.id.textview);
        editText.addTextChangedListener(textWatcher);

    }

    private TextWatcher textWatcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            textView.setText("please input numbers");
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }


        @Override
        public void afterTextChanged(Editable s) {

            String result = "00";
            String str = editText.getText().toString();

            char[] b = new char[str.length()];

            for (int i = 0; i < str.length(); i++) {

                b[i] = str.charAt(i);

            }

            for (int j = 0; j < b.length - 2; j++) {
                if (Integer.parseInt(""+b[j])==1&&Integer.parseInt(""+b[j+1])==1&&Integer.parseInt(""+b[j+2])==1){
                    result = result + "1";
                } else {
                    result = result + "0";


                }

            }


            textView.setText(result);

        }


    };
}






























發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章