Để cung cấp kiểu chữ tùy chỉnh trong ListActivity
, tôi đã viết một lớp CustomAdapter
mở rộng BaseAdapter
theo ví dụ này here.Chuyển tiếp chậm hoạt động: nhiều "khởi tạo trạng thái thổi phồng" trong LogCat
Tuy nhiên, như mô tả ở đó, tôi đã viết các phương pháp getView()
như sau:
public View getView(int position, View convertView, ViewGroup parent){
String gameName = gameNames[position]; // gameName ist the String[] of the Custom Adapter
TextView tv = new TextView(context);
tv.setText(gameName);
tv.setTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/gulim.ttf"));
return tv;
}
này hoạt động như dự kiến. Điều đáng lo ngại nhất là phải mất khoảng ba hoặc bốn giây cho đến khi danh sách xuất hiện (và đây là một thời gian rất dài trong ngữ cảnh này). Tuy nhiên, trong ListActivity
tôi đặt onItemClickListener
s như thế này:
private void setOnItemClickListener(){
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int pos, long id){
onClickEntryButton(((TextView) view).getText().toString());
}
});
}
private void onClickEntryButton(String gameName){
Intent intent = new Intent(this, GameActivity.class);
intent.putExtra("gameName", gameName);
startActivity(intent);
finish();
}
Bây giờ khi nhấp vào một ListItem
, phải mất thời gian nhiều hơn cho đến khi GameActivity
mở ra. Điều này Activity
chỉ là một vài TextView
s đầy thông tin lấy từ một cơ sở dữ liệu SQLite. Ngoài ra ở đây, tôi đặt một kiểu chữ tùy chỉnh cho mỗi TextView
. Nó xảy ra ngay cả khi màn hình bị đen trong 2-3 giây (xuất hiện các ứng dụng bị rơi), sau đó mới Activity
xuất hiện. Điều này không xảy ra khi truy cập vào số Activity
từ những nơi khác trong ứng dụng.
Trong cả hai trường hợp - truy cập vào ListActivity
và truy cập vào GameActivity
từ ListActivity
- một vài
"szipinf - Khởi thổi phồng tình trạng"
thông điệp xuất hiện trong LogCat. Chúng có ý nghĩa gì trong bối cảnh này? Nó có phải là cách sử dụng tốt hơn để đặt onItemClickListener
s vào phương thức getView()
của CustomAdapter
của tôi không? Một cái gì đó dường như thực sự ức chế chuyển tiếp, nhưng tôi không thể hiểu được điều gì, vì không có gì lớn để được tính toán hoặc xử lý (trên thực tế, trong cơ sở dữ liệu SQLite chính xác là hai mục với mỗi 5 trường)?
EDIT Nếu được yêu cầu hoặc mong muốn, tất nhiên tôi có thể cung cấp thêm mã.