0

我无法显示 Toasts 我想显示 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);

    }
4

3 回答 3

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

于 2014-06-20T16:26:21.220 回答
0

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

于 2014-06-20T18:07:58.793 回答
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();

                    }
于 2014-06-20T16:27:56.183 回答