【发布时间】:2018-06-20 12:38:41
【问题描述】:
我遇到了一个问题。不知道该怎么称呼它,或者是什么原因造成的
我正在学习 Android SQLite,并开始制作一个简单的笔记应用程序。
问题是我有一个用于类别选择的自定义对话框,在打开对话框之前 EditText 字段中的一切都很好,但是在打开和关闭它之后,文本开始覆盖,就像创建多个相同文本的图层和文本光标在每个符号后留下一行。 (见问题的“bug demo”GIF)
有没有其他人见过这样的事情?什么可能导致这个对话框?
编辑:
所以这是点击星号打开对话框时采取行动的代码
starred.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(CreateNoteActivity.this);
View mView = getLayoutInflater().inflate(R.layout.dialog_category_select, null);
ListView categoryList = mView.findViewById(R.id.category_list);
Button cancelSelect = mView.findViewById(R.id.cancelSelect);
final CategoryListAdapter adapter = new CategoryListAdapter(CreateNoteActivity.this);
categoryList.setAdapter(adapter);
//get the data and append to a list
Cursor data = myDB.getCategories();
while(data.moveToNext()){
Category thisNote = new Category(data.getInt(0), data.getString(1), data.getString(2));
adapter.add(thisNote);
}
categoryList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, final int i, long l) {
final Category selectedCategory = (Category) adapterView.getItemAtPosition(i);
int duration = Toast.LENGTH_SHORT;
String s = "Category celected: "+selectedCategory.getCategoryName();
Toast toast = Toast.makeText(context, s, duration);
toast.show();
}
});
builder.setView(mView);
final AlertDialog selectCategory = builder.create();
selectCategory.getWindow().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
selectCategory.show();
View decorView = getWindow().getDecorView();
decorView.setBackgroundResource(android.R.color.transparent);
int width = (int)(getResources().getDisplayMetrics().widthPixels*0.80);
int height = (int)(getResources().getDisplayMetrics().heightPixels*0.80);
selectCategory.getWindow().setLayout(width, height);
cancelSelect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectCategory.dismiss();
}
});
}
});
【问题讨论】:
-
很酷的错误 :) 发布一些相关代码,以便我们尝试提供帮助..
-
什么版本的安卓?有没有不受影响的版本?
-
我的手机是API 24,模拟器有API 25
-
你能提供编辑文本逻辑吗,似乎问题与“你将如何使用编辑文本”有关
-
没有太多逻辑可以提供,只有一个简单的多行 EditText 字段来自女巫,我将内容保存到数据库中,但似乎我找到了导致问题的原因,不知道为什么不过。