2015-01-26 2 views
0

내 listview가 갑자기 사라진 문제를 알 수 없습니다. 나는 해결책을 수색하고 XML 파일에있는 모든 가능한 변화를 시도했다 그러나 나는 빈 화면을 아직도 얻는다. 리스트 뷰에 대한 XMLlistview에 아무것도 표시되지 않습니다

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<ListView 
    android:id="@+id/listView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
</ListView> 

목록보기 항목

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="vertical"> 

    <TextView 
    android:id="@+id/dcode" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="drcode" 
    android:textColor="#000000" /> 

<TextView 
    android:id="@+id/dname" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="18dp" 
    android:text="docname" 
    android:textColor="#000000" /> 

<TextView 
    android:id="@+id/a" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="43dp" 
    android:text="adr" 
    android:textColor="#000000" /> 

<TextView 
    android:id="@+id/cd" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="38dp" 
    android:layout_toRightOf="@+id/adr" 
    android:text="class_desc" 
    android:textColor="#000000" /> 

<TextView 
    android:id="@+id/tvshift" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="25dp" 
    android:text="shift" 
    android:textColor="#000000" /> 

<TextView 
    android:id="@+id/tcode" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="24dp" 
    android:layout_toRightOf="@+id/docname" 
    android:text="terrcode" 
    android:textColor="#000000" /> 

코드 목록보기 어댑터의

public class planningListViewAdapter extends BaseAdapter { 

    Context context; 
    public ArrayList<Planning> planArraylist; 
    private static LayoutInflater inflater = null; 
    public Activity attdSetupActivity; 

    public planningListViewAdapter(Context context,ArrayList<Planning> planArraylist) { 
      this.context = context; 
      this.planArraylist = planArraylist; 
      inflater = (LayoutInflater) context 
          .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 


    @Override 
    public int getCount() { 
      return planArraylist.size(); 
    } 

    @Override 
    public Object getItem(int arg0) { 
      return null; 
    } 

    @Override 
    public long getItemId(int arg0) { 
      return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
      if (convertView == null) { 
        convertView = inflater.inflate(R.layout.single_lv_item, null); 
      } 

      Planning p = planArraylist.get(position); 

     TextView tvdrCode = (TextView) convertView.findViewById(R.id.dcode); 
      TextView tvDrName = (TextView) convertView.findViewById(R.id.dname); 
      TextView tvTerr = (TextView) convertView.findViewById(R.id.tcode); 
      TextView tvAdr = (TextView) convertView.findViewById(R.id.a); 
      TextView tvClassDesc = (TextView) convertView.findViewById(R.id.cd); 
     //TextView tvSpeciality= (TextView) convertView.findViewById(R.id.speciaility); 
      TextView tvShift = (TextView) convertView.findViewById(R.id.tvshift); 



      tvdrCode.setText(p.getDrCode()); 
      tvDrName.setText(p.getDocName()); 
      tvTerr.setText(p.getTerrCode()); 
      tvAdr.setText(p.getAdr()); 
      tvClassDesc.setText(p.getClassDesc()); 
      //tvSpeciality.setText(p.getSpeciality()); 
     tvShift.setText(p.getShift()); 

      return convertView; 
    } 

} 활동 코드

,
public class PlanningList_activity extends Activity{ 


private Db_sqlite dbHelper; 
private planningListViewAdapter dataAdapter; 
private ListView listView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.planning_listview); 

     /* TextView columnHeader1 = (TextView) findViewById(R.id.column_header1); 
     TextView columnHeader2 = (TextView) findViewById(R.id.column_header2); 
     TextView columnHeader3 = (TextView) findViewById(R.id.column_header3); 
     TextView columnHeader4 = (TextView) findViewById(R.id.column_header4); 
     TextView columnHeader5 = (TextView) findViewById(R.id.column_header5); 
     TextView columnHeader6 = (TextView) findViewById(R.id.column_header6); 


     columnHeader1.setText("Plan No"); 
     columnHeader2.setText("Plan Date"); 
     columnHeader2.setText("Mon"); 
     columnHeader2.setText("Dr Code"); 
     columnHeader2.setText("Morn_Even"); 
     columnHeader2.setText("FF_Code"); */ 

     Log.e("on create", "yes"); 

     listView = (ListView) findViewById(R.id.listView1); 
     dbHelper = new Db_sqlite(PlanningList_activity.this); 
     new AsyncLoadplanList().execute(); 
} 

public class AsyncLoadplanList extends 
       AsyncTask<Void, Void, ArrayList<Planning>> { 

     ProgressDialog progressDialog; 

     @Override 
     protected void onPreExecute() { 
       progressDialog = new ProgressDialog(PlanningList_activity.this); 
       progressDialog.setMessage("Loading..."); 
       progressDialog.setCancelable(false); 
       progressDialog.show(); 
       Log.e("pre execute", "yes"); 

     } 

     @Override 
     public ArrayList<Planning> doInBackground(Void... params) { 
       try { 
         Log.e("In background", "yee"); 
         return loadData(); 

       } catch (Exception e) { 
         Log.e("get lost", e.getMessage()); 
       } 
       return null; 
     } 

     @Override 
     protected void onPostExecute(ArrayList<Planning> result) { 
       super.onPostExecute(result); 

       dbHelper.close(); 
       Log.e("data saving", "yoo"); 
       dataAdapter = new planningListViewAdapter(getApplicationContext(),result); 
       listView.setAdapter(dataAdapter); 

       if (progressDialog.isShowing()) { 
         progressDialog.dismiss(); 
       } 

       Toast.makeText(getApplicationContext(), "data loaded",Toast.LENGTH_LONG).show(); 
     } 

     private ArrayList<Planning> loadData() { 

       // Load data here from database 
       return dbHelper.getPlanningList(); 

     } 
} 

내가 문제를 찾는 많은 시간을 낭비하지만이 화면에 표시되지 않는 이유 이해 cannnot 데이터베이스 방법

public ArrayList<Planning> getPlanningList() { 

    SQLiteDatabase db = getReadableDatabase(); 
    ArrayList<Planning> planningList = new ArrayList<Planning>(); 
    Cursor mCursor = db.query(DOC_PLANNING_TABLE_NAME, null,null,null,null,null,null); 
    if (mCursor != null && mCursor.moveToFirst()) { 
      do { 
        Planning planning = new Planning(); 
        String docCode = mCursor.getString(mCursor.getColumnIndex(DCP_COLUMN_dr_code)); 
        String planno = mCursor.getString(mCursor.getColumnIndex(DCP_COLUMN_PLAN_NO)); 
        String terrCode = mCursor.getString(mCursor 
            .getColumnIndex(DCP_COLUMN_terr_code)); 
        String adr = mCursor.getString(mCursor 
            .getColumnIndex(DCP_COLUMN_PLAN_DATE)); 
        String classdesc= mCursor.getString(mCursor 
            .getColumnIndex(DCP_COLUMN_MON)); 
        String speciality= mCursor.getString(mCursor 
            .getColumnIndex(DCP_COLUMN_REF_NO)); 

        String shift= mCursor.getString(mCursor 
          .getColumnIndex(DCP_COLUMN_MORN_EVEN)); 

        planning.setDrCode(docCode); 
        planning.setDocName(planno); 
        planning.setTerrCode(terrCode); 
        planning.setAdr(adr); 
        planning.setClassDesc(classdesc); 
        planning.setShift(shift); 
         planning.setSpeciality(speciality); 
      } while (mCursor.moveToNext()); 
      mCursor.close(); 
    } 
    return planningList; 

}. 제발 나를 안내 해줘.

또한
@Override 
    public Object getItem(int arg0) { 
     return planArraylist.get(arg0); 
    } 

    @Override 
    public long getItemId(int arg0) { 
     return arg0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder; 

     if (convertView == null) { 
      convertView = layoutInflater.inflate(R.layout.single_lv_item, parent, false); 

      holder = new ViewHolder(); 

      holder.tvdrCode = (TextView) convertView.findViewById(R.id.dcode); 
      holder.tvDrName = (TextView) convertView.findViewById(R.id.dname); 
      holder.tvTerr = (TextView) convertView.findViewById(R.id.tcode); 
      holder.tvAdr = (TextView) convertView.findViewById(R.id.a); 
      holder.tvClassDesc = (TextView) convertView.findViewById(R.id.cd); 
      holder.tvShift = (TextView) convertView.findViewById(R.id.tvshift); 

      convertView.setTag(holder); 

     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 

      Planning p = planArraylist.get(position); 

      holder.tvdrCode.setText(p.getDrCode()); 
      holder.tvDrName.setText(p.getDocName()); 
      holder.tvTerr.setText(p.getTerrCode()); 
      holder.tvAdr.setText(p.getAdr()); 
      holder.tvClassDesc.setText(p.getClassDesc()); 
      holder.tvShift.setText(p.getShift()); 

     return convertView; 
    } 

    static class ViewHolder { 
      TextView tvdrCode; 
      TextView tvDrName; 
      TextView tvTerr; 
      TextView tvAdr; 
      TextView tvClassDesc; 
      TextView tvShift; 
    } 

, 목록보기 XML 파일 : 아래 코드에서 수정

+0

코드는 어디에 있습니까? –

+0

xml 파일에 listview를 넣으시겠습니까? –

+0

@MD 죄송합니다. 게시물을 편집했습니다 –

답변

0

: 아래 그림과 같이

@Override 
public Object getItem(int arg0) { 
      return planArraylist.get(planArraylist.get(arg0-1)); } 

    @Override 
    public long getItemId(int arg0) { 
      return arg0; } 
+0

좋은 힌트이지만 문제와 관련이 없습니다 ... – Selvin

+0

실수를 지적 해 주셔서 감사합니다 –

+0

문제가 해결 되었습니까? – Psypher

0

내가 생각하는 당신은 다르게 당신의 getView 방법을 작성하고 홀더 클래스를 사용 선형 레이아웃을 사용하지만 android:layout_alignParentTop="true"과 같은 상대 레이아웃에서만 찾을 수있는 속성이 있습니다. 너도 그걸 고칠 수 있을까?

+0

실제로 그것은 문제가 XML 파일에있는 것 같아 갑자기이 문제가 발생했습니다. –

+0

업데이트 된 답변에서 제안한대로 XML을 업데이트 할 수 있습니까? – iRuth

+0

'planningListViewAdapter'를 제안 된 수정 사항으로 업데이트하여 문제가 해결되었는지 확인 했습니까? – iRuth

관련 문제