【问题标题】:array of char from edittext来自edittext的字符数组
【发布时间】:2014-08-11 11:22:19
【问题描述】:

我在显示 Toast 时遇到问题 我想显示 EditText 字段中的每个字符项。 但是当我在手机上调试它时,它只是冻结并且不想执行任务。 我该如何纠正?

package com.example.translit;
import android.R.string;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {


private OnClickListener mclick = new OnClickListener() {

        @Override
        public void onClick(View v) {
            Toast.makeText(getApplicationContext(), "bla-bla", Toast.LENGTH_SHORT).show();
            EditText txtEnter = (EditText) findViewById(R.id.etEnter);
            //EditText txtOut = (EditText) findViewById(R.id.etOut);

            for(int i=1;i<txtEnter.length()+1;i++){
                String str = txtEnter.getText().toString();
                char[] charArray = str.toCharArray();
                Toast.makeText(getApplicationContext(), charArray[i] , Toast.LENGTH_SHORT).show();

            }


        }

    };  

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);
        Button mbutton = (Button) findViewById(R.id.btnTr);
        mbutton.setOnClickListener(mclick);

    }

【问题讨论】:

    标签: android android-edittext android-toast


    【解决方案1】:

    改变这个:

     for(int i=1;i<txtEnter.length()+1;i++){
                    String str = txtEnter.getText().toString();
                    char[] charArray = str.toCharArray();
                    Toast.makeText(getApplicationContext(), charArray[i] , Toast.LENGTH_SHORT).show();
    
                }
    

    到这里:

     String str = txtEnter.getText().toString();
     char[] charArray = str.toCharArray();
     for(int i=1;i<txtEnter.length();i++){
                Toast.makeText(getApplicationContext(), charArray[i] , Toast.LENGTH_SHORT).show();
    
            }
    

    您只想在显示文本时使用 for 循环,而不是从编辑文本中检索它

    请注意,可能是因为操作太快,你只会看到最后2或3个字母

    【讨论】:

    • 同样的事情。单击按钮后它会冻结。
    • 然后“抱歉!...意外停止了...”
    【解决方案2】:
     String str = txtEnter.getText().toString();    
        for(int i=1;i<txtEnter.length()+1;i++){
    
         Toast.makeText(getApplicationContext(), str.charAt(i) , Toast.LENGTH_SHORT).show();
    
                        }
    

    【讨论】:

      【解决方案3】:

      您的 for 循环不正确。你应该从i=0 转到i&lt;txtEnter.length()

      【讨论】:

        猜你喜欢
        • 2019-05-19
        • 2011-11-04
        • 2020-03-06
        • 2018-02-13
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        • 1970-01-01
        • 2013-01-03
        相关资源
        最近更新 更多