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

버튼을 눌렀을때, 리스트뷰를 보이게 또는 사라지게 하고싶습니다.

0 추천

 

안녕하세요.

제가 현재 리니어레이아웃으로 아래의 사진과 같이 버튼 2개를 만들어 놓았습니다.

그리고, 그 아래의 빨간 부분은 리스트뷰로 이루어져있습니다.

그런데 제가 아래의 두 버튼중의 이벤트를 넣지않고, 아래의 컨텐츠화면에 리스트뷰를 넣어서

프로그램을 실행하면, 아래와 같은 화면이 구성이 됩니다.

그런데, 첫번째 버튼을 눌렀을 경우에, 아래의 화면처럼 그대로 나오고,

두번째 버튼을 눌렀을 경우에는, 또 다른 내용으로 리스트뷰를 아래쪽에 만들어주고싶습니다.

지금같은 경우는 눈에띄게 하려고 배경을 빨간색으로 주었지만, 아마 다른 리스트뷰를 추가해서 넣는다면

다른 내용이 구성되도록 하고 싶은데 어떻게해야할지 방법을 잘 몰라서 글을 올렸습니다.

리니어 안쪽에 있는 버튼이벤트에 따라서, 각각 다른 화면을 구성하고 싶은데 단순히 버튼이벤트로만은

하는게 아닌것 같고.. 어떻게 코드를 바꾸어 주어야 할지 잘 모르겠어요..

아래의 소스코드를 첨부해 보겠습니다.

8000자가 넘는건 아래의 댓글에 포함해서 붙여보겠습니다.

< JAVA 파일 >

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TabHost;
import android.widget.Toast;

public class Location extends AppCompatActivity {

    private ListView m_ListView;
    private ArrayAdapter<String> m_Adapter;

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

        // Android에서 제공하는 string 문자열 하나를 출력 가능한 layout으로 어댑터 생성
        m_Adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1);

        // Xml에서 추가한 ListView 연결
        m_ListView = (ListView) findViewById(R.id.listview);

        // ListView에 어댑터 연결
        m_ListView.setAdapter(m_Adapter);

        // ListView 아이템 터치 시 이벤트 추가
        m_ListView.setOnItemClickListener(onClickListItem);

        // ListView에 아이템 추가
         m_Adapter.add("떢볶이");
        m_Adapter.add("순대");
        m_Adapter.add("감자");
        m_Adapter.add("달걀/라볶이");
        m_Adapter.add("오뎅");
        m_Adapter.add("호떡");
        m_Adapter.add("돈까스");

    

 

 

Kind카인드 (3,600 포인트) 님이 2016년 11월 5일 질문
private AdapterView.OnItemClickListener onClickListItem = new AdapterView.OnItemClickListener() {
      
</LinearLayout>

1개의 답변

0 추천
 
채택된 답변
ListView를 두개 만드시고 ListView를 감싸는 레이아웃을 LinearLayout 이 아닌 FrameLayout로 바꾸셔서

버튼 이벤트에 따라 두개의 ListView의 Visible를 변경해주시면 됩니다.
바램 (19,650 포인트) 님이 2016년 11월 6일 답변
Kind카인드님이 2016년 11월 7일 채택됨
와 답변 정말 감사드립니다 ㅠ_  ㅠ 덕분에, 버튼이벤트를 통해서
visible, invisible을 통해 해결을 했습니다.
그런데 알쏭달쏭한 부분이 하나 있습니다.
리스트에 아래와 같이 값을 추가할때마다, 아래로 내려가는바람에
오른쪽도 채워야할텐데 그 부분은 어떻게 해결을 해야 하나요..?

 m_Adapter.add("떢볶이");
        m_Adapter.add("순대");
        m_Adapter.add("감자");
        m_Adapter.add("달걀/라볶이");
        m_Adapter.add("오뎅");
        m_Adapter.add("호떡");
        m_Adapter.add("돈까스");

예를들어 위와 같이 있으면, 이게 아래로만가서, 오른쪽으로 가져야 할텐데..
고민입니다 ㅠ ㅠ 오른쪽은 따로 리스트뷰를 하나더 만들어야하는건지..
그리고 떡볶이를 눌렀을 경우에, 오른쪽에 나타나는 내용은 매운떡볶이, 고추장떡복이 등등이 나오게 하고싶습니다. 마찬가지로 왼쪽에서 오뎅을 눌렀을 경우에 오른쪽에는 매운오뎅, 차가운오뎅.. 등등
...