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

메인 클래스에서 RecyclerView의 값 참조?

+1 추천

RecyclerView와 CardView를 이용해서 String[] 데이터 값들을 표시/연결 하는 것까진 성공했습니다. 그런데 Adapter에 연결된 값들을 메인 클래스에서 값을 얻으려고 하니... 에러가 나네요.

 

public class MainActivity extends ActionBarActivity {

.
.
.
    private RecyclerView mRecyclerView;
    private RecyclerView.Adapter mAdapter;
    private RecyclerView.LayoutManager mLayoutManager;

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

        mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
        mRecyclerView.setHasFixedSize(true);

        mLayoutManager = new LinearLayoutManager(this);
        mRecyclerView.setLayoutManager(mLayoutManager);

        mAdapter = new RecyclerAdapter(String[] Dataset);
        mRecyclerView.setAdapter(mAdapter); 
    }
public void click1(View v) {

//RecyclerView와 관련된 메소드 사용시 에러.
//Toast는 잘됩니다.

}
card_view.xml
.
.
카드뷰
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"
android:onClick="click1"

RecyclerView와 Adapter를 연결하는 법은 안드로이드 레퍼런스를 참고했습니다.

https://developer.android.com/training/material/lists-cards.html

 

 

RecyclerView와 관련된 메소드들을 click1 이라는 곳에서 사용하면 다음과 같은 에러가 뜹니다. 에러내용은 전부 같습니다.

java.lang.IllegalStateException: Could not execute method of the activity
 
Caused by: java.lang.reflect.InvocationTargetException
 
Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.support.v7.widget.RecyclerView$LayoutParams
 
 
선언한 메인 클래스에서 LayoutManager의 아이템들 값을 얻는걸로 알고있는데 참조방법이 잘못된 것같고... 혹시 클릭 메소드의 사용방법이 잘못된 건가요? 아무래도 그 쪽 말고는 의심이 가는 부분이... 
CEL (1,140 포인트) 님이 2015년 7월 19일 질문
CEL님이 2015년 7월 19일 수정

1개의 답변

0 추천
 
채택된 답변
aucd29 (218,390 포인트) 님이 2015년 7월 22일 답변
CEL님이 2015년 7월 23일 채택됨
...