2014-01-24 6 views
0

여기서는 3 개의 ArrayList (EmpName, EmpID 및 EmpPhone)를 사용하고 있습니다. 각 arraylist에 5 개의 데이터를 저장하고 있습니다. 그 다음에는 목록보기의 모든 행과 같은 3 개의 데이터가 표시됩니다. 그러나 나는 정확한 결과를 얻지 못합니다. . 여기 내 전체 코드 ... 도와주세요 ... 고마워요.ArrayList에서 ListView에 대한 직원 세부 정보를 표시하는 방법은 무엇입니까?

activity_main.xml

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

custom_checkbox.xml

<TextView 
     android:id="@+id/custom_empname_textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/custom_empid_textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/custom_empphone_textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:textAppearance="?android:attr/textAppearanceLarge" /> 

MainActivity.java

public class MainActivity extends Activity { 


    ArrayList<String> EmpName; 
    ArrayList<String> EmpID; 
    ArrayList<String> EmpMobile; 

    void getEmpDetails() { 

     EmpName.add("Jhon"); 
     EmpName.add("Joy"); 
     EmpName.add("Jain"); 
     EmpName.add("Jason"); 
     EmpName.add("Joky"); 

     EmpID.add("1001"); 
     EmpID.add("1002"); 
     EmpID.add("1003"); 
     EmpID.add("1004"); 
     EmpID.add("1005"); 

     EmpMobile.add("8179789878"); 
     EmpMobile.add("8179789478"); 
     EmpMobile.add("8179789378"); 
     EmpMobile.add("8179789278"); 
     EmpMobile.add("8179789678");   
    } 

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

     ListView list = (ListView)findViewById(R.id.main_listView1); 



    } 

    class ListAdapter extends BaseAdapter { 

     @Override 
     public int getCount() { 
      // TODO Auto-generated method stub 
      return EmpName.size(); 
     } 

     @Override 
     public Object getItem(int arg0) { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public long getItemId(int arg0) { 
      // TODO Auto-generated method stub 
      return 0; 
     } 

     @Override 
     public View getView(int index, View v, ViewGroup vg) { 
      // TODO Auto-generated method stub 
      v = getLayoutInflater().inflate(R.layout.custom_checkbox, null); 

      TextView t1 = (TextView)v.findViewById(R.id.custom_empname_textView); 
      TextView t2 = (TextView)v.findViewById(R.id.custom_empid_textView); 
      TextView t3 = (TextView)v.findViewById(R.id.custom_empphone_textView); 

      EmpName = new ArrayList<String>(); 
      EmpID = new ArrayList<String>(); 
      EmpMobile = new ArrayList<String>(); 

      getEmpDetails(); 

      ArrayAdapter<String> a1 = 
        new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, EmpName); 

      ArrayAdapter<String> a2 = 
        new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, EmpID); 

      ArrayAdapter<String> a3 = 
        new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, EmpMobile); 

      t1.setText((CharSequence) a1); 
      t2.setText((CharSequence) a2); 
      t3.setText((CharSequence) a3); 

      return null; 
     } 

    } 
} 

답변

1
기반

귀하의 질문과 문제에, 나는 점 이하를 제안 :

  1. 은 하나의 ArrayList를 관리 : 같은 개체에 대한 관리 다른 ArrayLists 관리하기 어려울 것이다. 당신이 Employee의 정보를 저장하기 위해 3 ArrayList를 관리하는 것처럼. 대신 Employee가 클래스 인 단일 ArrayList를 관리해야합니다.
  2. 특정 직원 개체 얻기 :getView() 메서드 내에서 특정 Employee 개체를 position으로 가져올 수 있습니다.
  3. 사용자 정의 어댑터의 getView() 메소드 내에 ArrayAdapter를 작성 중입니다. 전혀 필요하지 않습니다.

코드가 너무 많이 변경되면 더 좋은 안드로이드 북을 얻고 안드로이드 프로그래밍을 배우게됩니다.

0

잘못된 어댑터를 사용하고있어서 ListView에 설정하지 않았기 때문에 코드가 작동하지 않습니다. 아쉽게도 코드에 너무 많은 변경이 필요합니다 (예 : 새 개체 Employee를 변경해야합니다. 어댑터에 이러한 개체의 배열을 전달하고 Employee에서 항목보기로 bing 값을 전달해야합니다). 및 어댑터에 대해 다시 코드를 작성하려고 :

http://www.vogella.com/tutorials/AndroidListView/article.html

http://www.javacodegeeks.com/2013/09/android-listview-with-adapter-example.html

는 도움이되기를 바랍니다.

관련 문제