我在显示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);
}
答案 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()
。