gpt4 book ai didi

Android ListView 在 Gingerbread 上无法正常工作

转载 作者:行者123 更新时间:2023-11-30 03:12:58 26 4
gpt4 key购买 nike

我本可以发誓这在以前是有效的,但现在当我测试它时我遇到了问题。我有一个自定义 ListView ,其中包含一系列高度不同的 TextView 。在 Android 4.x 中,一切都完美无缺。在我的旧 2.3 手机上,列表出现了,但它只有一行高,所以大部分 TextView 都看不到。它的行为与它应该的一样,它会滚动,我可以通过长按来删除项目。

我试过将 TextView 高度更改为固定值,这在 4.x 上有效,但在 2.3 上没有区别

以下是相关的代码:notam_list.xml

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listOfNotams"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>

我的listviewstyle.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listviewText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="6dp"
android:textSize="12sp" />

Activity fragment :

public class NotamList extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.notam_list);

final ListView listOfNotams = (ListView) findViewById(R.id.listOfNotams);

....
}

final StableArrayAdapter adapter = new StableArrayAdapter(this, R.layout.mylistviewstyle, NOTAMS);

listOfNotams.setAdapter(adapter);

listOfNotams.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public boolean onItemLongClick(AdapterView<?> parent, final View view, int position, long id) {
final String item = (String) parent.getItemAtPosition(position);

Pattern pattern;
Matcher matcher;
if (item.substring(4, 5).matches("-")) {
pattern = Pattern.compile("[A-Z][A-Z][A-Z][A-Z]-[A-Z][0-9]+/[12]\\d");
matcher = pattern.matcher(item);
matcher.find();
String notamSelected = matcher.group(0);
HiddenNotam hiddenNotam = new HiddenNotam(notamSelected, 1);

if (db.checkHiddenNotamExists(notamSelected)) {
db.deleteHiddenNotam(hiddenNotam);

Toast toast = Toast.makeText(getApplicationContext(), notamSelected + " Un-Hidden", Toast.LENGTH_SHORT);
toast.show();
} else {
db.addHiddenNotam(hiddenNotam);
if (hideNotams) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {

// POSSIBLE SOLUTION TO THIS
// http://nineoldandroids.com/

NOTAMS.remove(item);
adapter.notifyDataSetChanged();
} else {
view.animate().setDuration(2000).alpha(0).withEndAction(new Runnable() {

@Override
public void run() {
NOTAMS.remove(item);
adapter.notifyDataSetChanged();
view.setAlpha(1);
}

});
}
}
Toast toast = Toast.makeText(getApplicationContext(), notamSelected + " Hidden", Toast.LENGTH_SHORT);
toast.show();
}
} else {
Toast toast = Toast.makeText(getApplicationContext(), "This can't be hidden", Toast.LENGTH_SHORT);
toast.show();
}

return true;
}

});
}

private class StableArrayAdapter extends ArrayAdapter<String> {

HashMap<String, Integer> mIdMap = new HashMap<String, Integer>();

public StableArrayAdapter(Context context, int textViewResourceId, List<String> objects) {
super(context, textViewResourceId, objects);
for (int i = 0; i < objects.size(); ++i) {
mIdMap.put(objects.get(i), i);
}
}

@Override
public long getItemId(int position) {
String item = getItem(position);
return mIdMap.get(item);
}

@Override
public boolean hasStableIds() {
return true;
}

}

有什么想法吗?

编辑:我还刚刚发现,在我的帮助屏幕中,它只是一系列文本未换行的 TextView。当然,每个 TextView 只是变成一条大线,没有水平滚动。我已经以完全相同的方式编写了其他应用程序(据我所知)并且我以前没有遇到过这个问题?

最佳答案

看来是电话问题。我已经完全卸载它,然后重新安装,它又可以工作了。感谢您的关注。

关于Android ListView 在 Gingerbread 上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20611767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com