addfootble0.png addfootble.png  


ListView의 addHeaderView() 를 사용하려고 하는데요..

List1 의 끝에 addFooterView()를 사용하여 List2 를 연결 했더니...

List2로 Scrollbar를 이용하여 선택될시에 전체 목록이 선택이 되네요...

아마 ListView의 마지막 셀이라는 인식에 List2의 전체 목록을 선택하는거 같은데요..

해결방법이 없을까요?

Scrollbar 또한 List1위에 있을경우랑 List2위에 있을경우에 서로 다르게 표시가 되네요...



3일째 해매고 있어요....ㅠ고수분들의 많은 도움 부탁 드립니다. ㅠㅠ

///////////////////////////////////////////////////////////////////////////////////
main.xml

<?xml version="1.0" encoding="utf-8"?>
 
    <LinearLayout  
    xmlns:android="
http://schemas.android.com/apk/res/android"
     android:id = "@+id/layout"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent" 
     android:orientation="vertical"
    >     
     <EditText android:id = "@+id/editText_list1"
          android:layout_width="fill_parent"
             android:layout_height="wrap_content"
      />
      <EditText android:id = "@+id/editText_list2"
          android:layout_width="fill_parent"
             android:layout_height="wrap_content"
      />
    
   <ListView android:id = "@+id/list1"
       android:layout_width="fill_parent"
           android:layout_height="fill_parent"         
   />       
</LinearLayout>


/******************************************************************************/
import java.util.ArrayList;import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;

public class ListScrollView_Exam extends Activity implements OnClickListener, OnKeyListener{
    /** Called when the activity is first created. */
 
  ListView lv =null;
  ListView lv2 =null;
 
  EditText editText_list1 = null;
  EditText editText_list2 = null;
  
  ArrayList<String> items  = new ArrayList<String>();
  ArrayList<String> items2  = new ArrayList<String>();
 
  LinearLayout listLayout1 = null;
  LinearLayout listLayout2 = null;
 
  Boolean count = true;
  int listOneSize = 100;
 
 
  String[] itemss={"Banana","Apple","WaterMelon","Orange","Strawberry","Lemon","Cherry","aaaaa","bbbbb","ccccc"};
  String[] itemss2={"Banana2","Apple2","WaterMelon2","Orange2","Strawberry2","Lemon2","Cherry2","aaaaa2","bbbbb2","ccccc2"};
 
  private ArrayAdapter<String> mAdapter;
  private ArrayAdapter<String> mAdapter2;
 
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        items.add("Banana");
        items.add("Apple");
        items.add("WaterMelon");
        items.add("Orange");
        items.add("Strawberry");
        items.add("Lemon");
        items.add("Cherry");
        items.add("aaaaa");  
       
        items2.add("2Banana");
        items2.add("2Apple");
        items2.add("2WaterMelon");
        items2.add("2Orange");
        items2.add("2Strawberry");
        items2.add("2Lemon");
        items2.add("2Cherry");
        items2.add("2aaaaa");  
  
        mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
        mAdapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items2);      
      
        listLayout1 = (LinearLayout)findViewById(R.id.layout);
        listLayout2 = new LinearLayout(this);
       
        ImageView imgview = new ImageView(this);
        imgview.setBackgroundResource(R.drawable.line);  
       
        lv = (ListView)findViewById(R.id.list1);   
        lv2 = new ListView(this);
        lv2.setChoiceMode(ListView.CHOICE_MODE_SINGLE);    
               
     
        lv2.addHeaderView(imgview);         
        lv2.setAdapter(mAdapter2);      
     
        listLayout2.setMinimumHeight(listOneSize*(mAdapter2.getCount()));
        listLayout2.addView(lv2, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));
            
        lv.addFooterView(listLayout2);  
        lv.setAdapter(mAdapter);  
  
         editText_list1 = (EditText)findViewById(R.id.editText_list1);       
         editText_list2 = (EditText)findViewById(R.id.editText_list2);
        
         editText_list1.setOnClickListener(this);
         editText_list1.setOnKeyListener(this);
        
         editText_list2.setOnClickListener(this);
         editText_list2.setOnKeyListener(this);
          
        
     }

//Click Listener    
    public void onClick(View v) {
     int getView  = v.getId();
     if(getView==2131034113){
       sendText(1);
     }
     else{
      sendText(2);
     }
      
    }

//KeyListener
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            switch (keyCode) {
                case KeyEvent.KEYCODE_DPAD_CENTER:
                case KeyEvent.KEYCODE_ENTER:
                 int getView  = v.getId();                 
                 if(getView==2131034112){                      
                   sendText(1);
                 }
                 else{
                  sendText(2);
                 }
                    return true;
            }
        }
        return false;
    }

//Text 설정
    private void sendText(int editnum) {
     if(editnum==1){          
         String text = editText_list1.getText().toString();
         mAdapter.add(text);
         editText_list1.setText(null);
     }
     else if(editnum==2){
      String text = editText_list2.getText().toString();
         mAdapter2.add(text);
         int a = listOneSize*(mAdapter2.getCount()+mAdapter.getCount());;
         int b = lv2.getHeight();
         listLayout2.setMinimumHeight(listOneSize*(mAdapter2.getCount()));
       
         editText_list2.setText(null);
     }  
 }

}