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

초보입니다. checkbox로textview로 나타내려고합니다.

0 추천
XML파일입니다.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="TextView"
        android:textAppearance="?android:attr/textAppearanceLarge" />
 
    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:text="CheckBox" />
 
    <CheckBox
        android:id="@+id/checkBox2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/checkBox1"
        android:text="CheckBox" />
 
    <CheckBox
        android:id="@+id/checkBox3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/checkBox2"
        android:text="CheckBox" />
 
</RelativeLayout>
 
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View.OnClickListener;
import android.view.ViewStub;
import android.widget.CheckBox;
import android.widget.TextView;
 
public abstract class MainActivity extends Activity implements OnClickListener{
 
CheckBox c1, c2, c3;
TextView t1;
String a = "";
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        c1=(CheckBox)findViewById(R.id.checkBox1);
        c2=(CheckBox)findViewById(R.id.checkBox2);
        c3=(CheckBox)findViewById(R.id.checkBox3);
        t1=(TextView)findViewById(R.id.textView1);
        
        c1.setText("1");
        c2.setText("2");
        c3.setText("3");
        
    }
    public void onClick(ViewStub v) {
// TODO Auto-generated method stub
if (c1.isChecked() == true) {
a = "1";
} else {
a = "";
}
if (c2.isChecked() == true) {
a = a + "2";
} else {
a = a + "";
}
if (c3.isChecked() == true) {
a = a + "3";
} else {
a = a + "";
}
t1.setText("결과 : " + a);
 
}
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
 
 
아직 초보라서 여기저기 블로그 뒤지면서 하고 있습니다.
화면에 체크박스를 체크하면 결과로 띄우고싶은데
디바이스로 켜보면 실행되지도 않고 좀 답답합니다.
 
익명사용자 님이 2013년 12월 11일 질문

2개의 답변

0 추천
 
채택된 답변

체크박스로 하신다면 onclick 이벤트 말고 체크박스의 상태 변화를 인식하는 이벤트가 있습니다.

setOnCheckedChangeListener 를 이용 하면 간편 하게 버튼 상태가 변할때마다 이벤트를 캐치할수 있습니다.

그리고 제가 체크박스를 써본결과 레이아웃에는 표시안되지만 폰에 올릴시 자동으로 패딩이 들어가서 화면 맞추는 부분에서 안맞는 경우가 있습니다. 그럴때 패딩을 줘서 할수도 있지만 한계가 있더군요. 그래서 저는 체크박스나 라디오 버튼 부분을 쓸때는 CheckedTextView를 쓰는편입니다.  한가지 팁을 드리면 자동으로 임포트 하는 방법에는 컨틀로+쉬프트+o 를 누르면 자동의로 임포트가 됩니다..

 

그리고 지금 올라온 코드에서 작동되게 하는 방법은 

c1.setOnClickListener(this);

c2.setOnClickListener(this);

c3.setOnClickListener(this);

추가 하시면됩니다.

왈라뽕다 (1,170 포인트) 님이 2013년 12월 11일 답변
0 추천

버튼을 누르거나, 체크박스에 체크하거나, 어떤뷰에 터치하거나 이런 동작을 하려면 

뷰에 리스너를 설정해주어야 합니다

단순히 onClick 메소드에 코드를 적는다고해서 동작하지는 않아요

c1.setOnClickListener(this);

이런식으로 리스너를 설정해주고

implements로 구현된 onClick 메소드에서 체크 또는 해제 될 때 동작하는 코드를

작성하면 됩니다

그리고 추상클래스로 abstract class가 아닌

그냥 class 로 바꾸어 주세요

 

익명사용자 님이 2013년 12월 11일 답변
2013년 12월 11일 수정
...