2016-08-02 2 views
-1

나는 6 시즌 whithin sqlite 데이터베이스를 가지고 있지만 목록보기 데이터를로드하는 데 몇 초가 걸리는 안드로이드 북을 만들고 있어요. 는 내가이 작업을 수행하는 onscroll 메도을 구현 sholud 것을 알고,하지만 난 그것을 관리하는 방법을 모르는 내 코드는 다음과 같습니다목록보기에 sqlite 데이터베이스

public class list_story extends ListActivity{ 
private database db; 
private String[] Name; 

private String sea; 
Context c; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.list_story); 
    db = new database(this); 
    Bundle ex = getIntent().getExtras(); 
    sea = ex.getString("sea"); 
    refresh(); 
    setListAdapter(new AA()); 


} 

class AA extends ArrayAdapter<String>{ 
    public AA(){ 
    super(list_story.this,R.layout.row_list,Name); 
} 
    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 

     LayoutInflater in = getLayoutInflater(); 
     View row = in.inflate(R.layout.row_list, parent,false); 
     txt.setText(Name[position]); 
     return (row); 

    } 

} 
private void refresh(){ 
    db.open(); 
    int s =db.Story_count("content", sea); 
    Name = new String[s]; 
    Fav=new String[s]; 
    Tasvir=new String[s]; 
    Scientific=new String[s]; 
    English=new String[s]; 

    for (int i = 0; i < s; i++) { 
     Name[i]=db.Story_display(i, sea, "content", 1); 
     Fav[i]=db.Story_display(i, sea, "content", 4); 
     Tasvir[i]=db.Story_display(i, sea, "content", 5); 
     Scientific[i]=db.Story_display(i, sea, "content", 6); 
     English[i]=db.Story_display(i, sea, "content", 7); 

    } 
    db.close(); 

} }

답변

0

기본적으로 때마다 새 팽창하려고 보기, 당신은 말 그대로 새로운 관점을 부 풀릴 것입니다. 그 문제는 100 개 이상의 항목을 목록보기에 넣으면 정의한 100 개 이상의보기가있는 것입니다. 매우 비효율적입니다. ListView에 ViewHolder 패턴을 사용하거나 RecyclerView를 사용하십시오. 더 나은 아직 RecyclerView를 사용하십시오. 이 두 가지 모두에 대한 웹에 대한 많은 정보가 있습니다.

db = new DBAdapter(this); 
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
     android.R.layout.simple_list_item_1, 
     db.getAllTitles(), 
     new String[] { "title" }, 
     new int[] { android.R.id.text1 }); 

ListView listView = (ListView) findViewById(R.id.list); 
listView.setAdapter(adapter); 

당신이 추가 문의 사항이있을 경우 : a simpleCursorAdapter를 사용하는 당신은 단지 하나의 텍스트 필드를 사용하고 DB를 내가 당신을 권 해드립니다한다면 그냥

관련 문제