我想知道是否有任何方法可以从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);它会删除第一个字符.
我希望有帮助:)