来自edittext的char数组

时间:2014-06-20 16:23:44

标签: android android-edittext android-toast

我在显示Toasts方面遇到了麻烦 我想显示EditText字段中的每个char项。 但是当我在手机上调试时,它只是冻结而不想完成任务。 我该如何纠正?

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

    }

3 个答案:

答案 0 :(得分:3)

改变这个:

 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个字母

答案 1 :(得分:0)

 String str = txtEnter.getText().toString();    
    for(int i=1;i<txtEnter.length()+1;i++){

     Toast.makeText(getApplicationContext(), str.charAt(i) , Toast.LENGTH_SHORT).show();

                    }

答案 2 :(得分:0)

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