我想知道是否有任何方法可以从中删除特定字符EditText.我想EditText通过在编辑文本中指定位置来删除章程是否有类似removeAt()的内容EditText?
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;
}
}
Run Code Online (Sandbox Code Playgroud)
额外的信息
主要问题是我想在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;
}
});
Run Code Online (Sandbox Code Playgroud)
问题是,我得到双字符的一个是普通字符,然后再加粗字体,所以我想通过指定位置删除正常字符
Edd*_*y K 10
您必须先将其更改为字符串,因为getText返回可编辑,例如:
int charIndex;
String text = ed1.getText().toString();
text = text.substring(0, charIndex) + text.substring(charIndex+1);
ed1.setText(text);
Run Code Online (Sandbox Code Playgroud)
删除角色并保持BOLD字符相同:
ed1.setText((Spanned)ed1.getText().delete(indexStart , indexEnd));
Run Code Online (Sandbox Code Playgroud)
这将从索引"indexStart"删除字符到"indexEnd -1".例如,如果你使用删除(0,1); 它会删除第一个字符.
我希望有帮助:)
我的实现如下。我希望它会有所帮助
int cursorPosition = mDialerEditText.getSelectionStart();
if (cursorPosition > 0) {
mDialerEditText.setText(mDialerEditText.getText().delete(cursorPosition - 1, cursorPosition));
mDialerEditText.setSelection(cursorPosition-1);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13155 次 |
| 最近记录: |