힝구힝구
22
2019-05-15 21:37:29
4
51

안드로이드 네비게이션 드로어 질문이여..


안녕하세요... 안드로이드 네비게이션 드로어를 만들려고하는데



listview.setOnItemClickListener(new ListView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView parent, View v, int position, long id) {

                TextView contentTextview = findViewById(R.id.drawer_content) ;

                switch (position) {
                    case 0 : // WHITE
                        contentTextview.setBackgroundColor(Color.rgb(0xFF, 0xFF, 0xFF)) ;
                        contentTextview.setTextColor(Color.rgb(0x00, 0x00, 0x00)) ;
                        contentTextview.setText("WHITE") ;
                        break ;
                    case 1 : // RED
                        contentTextview.setBackgroundColor(Color.rgb(0xFF, 0x00, 0x00)) ;
                        contentTextview.setTextColor(Color.rgb(0xFF, 0xFF, 0xFF)) ;
                        contentTextview.setText("RED") ;
                        break ;
                    case 2 : // GREEN
                        contentTextview.setBackgroundColor(Color.rgb(0x00, 0xFF, 0x00)) ;
                        contentTextview.setTextColor(Color.rgb(0x00, 0x00, 0x00)) ;
                        contentTextview.setText("GREEN") ;
                        break ;
                    case 3 : // BLUE
                        contentTextview.setBackgroundColor(Color.rgb(0x00, 0x00, 0xFF)) ;
                        contentTextview.setTextColor(Color.rgb(0xFF, 0xFF, 0xFF)) ;
                        contentTextview.setText("BLUE") ;
                        break ;
                    case 4 : // BLACK
                        contentTextview.setBackgroundColor(Color.rgb(0x00, 0x00, 0x00)) ;
                        contentTextview.setTextColor(Color.rgb(0xFF, 0xFF, 0xFF)) ;
                        contentTextview.setText("BLACK") ;
                        break ;
                }
                // 코드 계속 ...
            }
        });

        listview.setOnItemClickListener(new ListView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView parent, View v, int position, long id) {

                // ... 코드 계속

                // close drawer.
                DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer) ;
                drawer.closeDrawer(Gravity.LEFT) ;
            }
        });

https://recipes4dev.tistory.com/140


이 페이지에서 따왔습니다.

그런데 

이부분이랑

 TextView contentTextview = findViewById(R.id.drawer_content) ;

이부분에서 drawer 라는게 정의가 안되있다고.. 에러가 뜨네요

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer) ;

2017년 글이라서 API레벨이 달라서 그런건지 아니면 왜그런건지 궁금합니다...

0
0
  • 답변 4

  • CyanGlint
    265
    2019-05-16 08:37:43

    혹시나 하고 여쭤보는건데...layout 파일에 해당 View들은 배치하셨겠죠?

    0
  • 힝구힝구
    22
    2019-05-16 08:46:46

    네 이게 메인 xml 파일이고 그 밑에 ListView 추가했습니다만.. 이렇게하는게 아닌가요 ㅠ?



    <FrameLayout android:layout_width="match_parent"
        android:layout_height="match_parent"
        xmlns:android="http://schemas.android.com/apk/res/android">
    
        <LinearLayout
            android:id="@+id/layout_mapscreen"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
    
            <fragment
                android:id="@+id/map"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                class="com.google.android.gms.maps.MapFragment" />
        </LinearLayout>
    
        <ListView
            android:layout_width="200dp"
            android:layout_height="match_parent"
            android:layout_gravity="left"
            android:background="#FFC107"
            android:id="@+id/drawer_menulist" />
    </FrameLayout>


    0
  • CyanGlint
    265
    2019-05-16 13:05:22

    네 아닌것 같네요...


    코드상의 ID랑 layout의 ID가 일치해야되구요

    리스트뷰를 어디에 배치하셨다는건지는 모르겠지만 레이아웃 밖으로 나가면 안 됩니다.


    일단 예제에 있는걸 그대로 한번 따라해보시는게 어떨까 싶네요.

    0
  • 힝구힝구
    22
    2019-05-17 18:58:29

    답변 감사합니다..!

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.