我想知道是否有任何方法可以从EditText中删除特定字符.我想通过在编辑文本中指定位置来从EditText中删除章程
是否有类似于EditText的removeAt()?
是否有类似于EditText的removeAt()?
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Button b1=(Button)findViewById(R.id.button1); final EditText ed1=(EditText)findViewById(R.id.editText1); b1.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { // TODO Auto-generated method stub //i want something like this ed1.removeAt(5); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main,menu); return true; } }
额外的信息
主要问题是我想在edittext中使文本变为粗体而不是所有文本.设置粗体按钮后输入的文本(粗体是我的切换按钮).
好的,这里是代码
ed1.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v,int keyCode,KeyEvent event) { // TODO Auto-generated method stub int i = 0; switch(event.getAction()) { case KeyEvent.ACTION_UP: if(bold.isChecked()) { i=ed1.getSelectionStart(); ed1.append(Html.fromHtml("<b>"+ed1.getText().toString().charAt(i-1)+"</b>")); } return true; } return false; } });
问题是,我得到双字符的一个是普通字符,然后再加粗字体,所以我想通过指定位置删除正常字符
解决方法
您必须先将其更改为字符串,因为getText会返回可编辑的内容,例如:
int charIndex; String text = ed1.getText().toString(); text = text.substring(0,charIndex) + text.substring(charIndex+1); ed1.setText(text);
删除角色并保持BOLD字符相同:
ed1.setText((Spanned)ed1.getText().delete(indexStart,indexEnd));
这将从索引“indexStart”删除字符到“indexEnd -1”.
例如如果你使用删除(0,1);它会删除第一个字符.
我希望有帮助:)