마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리스트뷰에서 버튼 클릭시 색설정을 해주고싶어요.

0 추천

 

안녕하세요.

아래의 리스트뷰를 사용해서 왼쪽과 오른쪽으로 구분을 해 놨습니다.

그런데, 여기서 왼쪽부분을 클릭해서 나오는

오른쪽 부분의 리스트를 눌렀을 경우에, 배경색을 #ff0000 으로 주고 싶은데,

어떻게 설정을 해주어야 할지 잘 모르겠습니다. val2와 val4 가 클릭되는 곳에 배경색을 주고싶습니다.

버튼을 클릭했음을 좀 눈에 띄게 해주고 싶은데.. 어떻게 해주어야 할지 모르겠어요.

아래의 소스를 한번 첨부해 보았습니다. 글자가 좀 넘치는 부분은, 아래의 답변으로 달아보겠습니다.

 

import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;

public class Location extends AppCompatActivity {

    ArrayList<ListView_Data> left_datas = new ArrayList<ListView_Data>();
    ArrayList<ListView_Data> right_datas = new ArrayList<ListView_Data>();

    ListView left_listview;
    ListView right_listview;

    Button Loation_Selection_Btn;

    Context mContext;

    int tab_status = 0;
    int right_status = 0;

   


 

비선아 (920 포인트) 님이 2016년 11월 11일 질문
String[] tab1_string = {"서울", "경기", "인천", "대전", "광주","부산","강원도"};
    String[] Seoul = {"강남","동대문","목동","상봉","센트럴","수유","신촌","씨티(강남대로)"};
    
       
    String[] tab2_string = {"The BOUTIQUE", "DRIVE M", "OPEN M", "BALCONY M", "MX/M2"};
    String[] Bundang = {"분당", "센트럴", "일산벨라시타","코엑스","하남스타필드"};

    String val1 = null;
    String val2 = null;
    String val3 = null;
    String val4 = null;

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

        Loation_Selection_Btn = (Button) findViewById(R.id.Loation_Selection);
        Loation_Selection_Btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                String str1 = val1;
                String str2 = val2;
                String str3 = val3;
                String str4 = val4;
           
                Intent intent = new Intent(getBaseContext(),Date_and_Seat.class);
                intent.putExtra("Location_Information1",str1);
                intent.putExtra("Location_Information2",str2);
                intent.putExtra("Location_Information3",str3);
                intent.putExtra("Location_Information4",str4);
           
                startActivity(intent);

            }
        });


        mContext = this;

        TextView tab1 = (TextView) findViewById(R.id.Location_Button);
        TextView tab2 = (TextView) findViewById(R.id.Special_Button);
        left_listview = (ListView) findViewById(R.id.listView);
        right_listview = (ListView) findViewById(R.id.listView2);

 
        for(int i=0; i<tab1_string.length; i++){
            left_datas.add(new ListView_Data(tab1_string[i]));
        }


        final ListView_CustomAdapter left_adapter = new ListView_CustomAdapter(mContext, getLayoutInflater(), left_datas);
        final ListView_CustomAdapter right_adapter = new ListView_CustomAdapter(mContext, getLayoutInflater(), right_datas);

        left_listview.setAdapter(left_adapter);

        

        // 각 버튼을 누를때, 오른쪽에 뜨도록 하는 이벤트
        left_listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            
                if (tab_status==0){
                    switch (position){
                        case 0:
                            right_datas.clear();
                            for(int i=0; i<Seoul.length; i++)
                            {
                                right_datas.add(new ListView_Data(Seoul[i]));
                            }
                            right_listview.setAdapter(right_adapter);
                            val1=left_datas.get(position).getName();
                            break;
                        case 1:
                            right_datas.clear();
                            for(int i=0; i<Gyeonggi_do.length; i++)
                            {
                                right_datas.add(new ListView_Data(Gyeonggi_do[i]));
                            }
                            right_listview.setAdapter(right_adapter);
                            val1=left_datas.get(position).getName();
                            break;
                    }
                }
                
                else{
                    switch (position){
                        case 0:
                            right_datas.clear();
                            for(int i=0; i<Bundang.length; i++){
                                right_datas.add(new ListView_Data(Bundang[i]));
                            }
                            right_listview.setAdapter(right_adapter);
                            val3=left_datas.get(position).getName();
                            break;
                        case 1:
                            right_datas.clear();
                            for(int i=0; i<Mok_Dong.length; i++){
                                right_datas.add(new ListView_Data(Mok_Dong[i]));
                            }
                            right_listview.setAdapter(right_adapter);
                            val3=left_datas.get(position).getName();
                            break;
                    }
                }
            }
        });

        right_listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                if (right_status==0){
                    val2=right_datas.get(position).getName();
                }else{
                    val4=right_datas.get(position).getName();
                    Log.e("val Message - ", val1+ "," + val2 +"," +  val3 +"," +  val4);
                }

            }
        });

       
        tab1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //상태값 변경, 오른쪽, 왼쪽 리스트뷰 초기화 후 다시 셋팅
                if (tab_status!=0){
                    right_datas.clear();
                    tab_status=0;
                    right_status=0;
                }
                left_datas.clear();

                for(int i=0; i<tab1_string.length; i++){
                    left_datas.add(new ListView_Data(tab1_string[i]));
                }

                left_listview.setAdapter(left_adapter);
            }
        });

      
        tab2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //상태값 변경, 오른쪽, 왼쪽 리스트뷰 초기화 후 다시 셋팅
                tab_status=1;
                right_status=1;
                right_datas.clear();
                left_datas.clear();
                for(int i=0; i<tab2_string.length; i++){
                    left_datas.add(new ListView_Data(tab2_string[i]));
                }
                left_listview.setAdapter(left_adapter);
            }
        });
    }
}

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...