package com.example.practice5;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity implements View.OnClickListener{
TextView text1, text2, text3, text4, text5, text6, text7, text8, text9, text10, text11, text12;
Button button1,button2,button3,button4,button5,button6,button7,button8;
TextView abc[]={text1,text2,text3,text4,text5,text6,text7,text8,text9,text10,text11,text12};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1=(TextView)findViewById(R.id.text1);
text2=(TextView)findViewById(R.id.text2);
text3=(TextView)findViewById(R.id.text3);
text4=(TextView)findViewById(R.id.text4);
text5=(TextView)findViewById(R.id.text5);
text6=(TextView)findViewById(R.id.text6);
text7=(TextView)findViewById(R.id.text7);
text8=(TextView)findViewById(R.id.text8);
text9=(TextView)findViewById(R.id.text9);
text10=(TextView)findViewById(R.id.text10);
text11=(TextView)findViewById(R.id.text11);
text12=(TextView)findViewById(R.id.text12);
button1=(Button)findViewById(R.id.button1);
button2=(Button)findViewById(R.id.button2);
button3=(Button)findViewById(R.id.button3);
button4=(Button)findViewById(R.id.button4);
button5=(Button)findViewById(R.id.button5);
button6=(Button)findViewById(R.id.button6);
button7=(Button)findViewById(R.id.button7);
button8=(Button)findViewById(R.id.button8);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
button5.setOnClickListener(this);
button6.setOnClickListener(this);
button7.setOnClickListener(this);
button8.setOnClickListener(this);
}
public void onClick(View v){
int i;
for(i=0;i<=8;++i)
{
if(v.getId()==R.id.button1){
abc[i].setText("사과");
}
else if(v.getId()==R.id.button2){
abc[i].setText("귤");
}
else if(v.getId()==R.id.button3){
abc[i].setText("배");
}
else if(v.getId()==R.id.button4){
abc[i].setText("복숭아");
}
else if(v.getId()==R.id.button5){
abc[i].setText("천혜향");
}
else if(v.getId()==R.id.button6){
abc[i].setText("감자");
}
else if(v.getId()==R.id.button7){
abc[i].setText("신어기");
}
else if(v.getId()==R.id.button8){
abc[i].setText("사과");}}
}
}
자바 코드는 위에 있고 레이아웃 모습입니다.
상품명 밑에 텍스트뷰를 여러개 만들어 놓앗고 버튼을 하나씩 눌릴때마다 텍스트뷰에 넣으려고 합니다.
텍스트뷰 하나에 텍스트가 바뀌게는 할수 있겟는데 ㅜㅠ
제가 짠 코드로 실행해보니 실행되지 않고 꺼졌습니다. 문제가 뭔지 잘 모르겠어서 이렇게 글을 올렸습니다. 고수님들 제발 도와주세요 ㅜ
아 제가 원래 밑에 코드처럼 짜서 텍스트뷰 하나만 계속 수정이 되게 만들었는데요..
버튼을 하나더 누르면 밑에 텍스트뷰로 내려가게 하고 싶어서 포문을 사용해 보았습니다..
package com.example.practice4;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity implements View.OnClickListener{
TextView text1, text2, text3, text4, text5, text6, text7, text8, text9, text10, text11, text12, text13, text14;
Button button1,button2,button3,button4,button5,button6,button7,button8;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1=(TextView)findViewById(R.id.text1);
text2=(TextView)findViewById(R.id.text2);
text3=(TextView)findViewById(R.id.text3);
text4=(TextView)findViewById(R.id.text4);
text5=(TextView)findViewById(R.id.text5);
text6=(TextView)findViewById(R.id.text6);
text7=(TextView)findViewById(R.id.text7);
text8=(TextView)findViewById(R.id.text8);
text9=(TextView)findViewById(R.id.text9);
text10=(TextView)findViewById(R.id.text10);
text11=(TextView)findViewById(R.id.text11);
button1=(Button)findViewById(R.id.button1);
button2=(Button)findViewById(R.id.button2);
button3=(Button)findViewById(R.id.button3);
button4=(Button)findViewById(R.id.button4);
button5=(Button)findViewById(R.id.button5);
button6=(Button)findViewById(R.id.button6);
button7=(Button)findViewById(R.id.button7);
button8=(Button)findViewById(R.id.button8);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
button5.setOnClickListener(this);
button6.setOnClickListener(this);
button7.setOnClickListener(this);
button8.setOnClickListener(this);
}
public void onClick(View v){
if(v.getId()==R.id.button1){
text1.setText("사과");
}
else if(v.getId()==R.id.button2){
text1.setText("귤");
}
else if(v.getId()==R.id.button3){
text1.setText("배");
}
else if(v.getId()==R.id.button4){
text1.setText("복숭아");
}
else if(v.getId()==R.id.button5){
text1.setText("천혜향");
}
else if(v.getId()==R.id.button6){
text1.setText("감자");
}
else if(v.getId()==R.id.button7){
text1.setText("신어기");
}
else if(v.getId()==R.id.button8){
text1.setText("사과");
} }
현재 for문 로직 대로라면 모든 TextView에는 버튼을 누른 것만 들어갈 것입니다. 8개 모두가요.
이럴땐 차라리 count를 줘서 버튼을 하나씩 클릭을 할때마다 count값이 증가가 되는게 더 편할 것 같습니다.
제 스타일로 표현 하자면
int count = 0; public void onClick(View v){ if ( findViewByid(v.getId) instanceof Button){ if ( count == abc.length ) return; String fruit = ((Button)findViewByid(v.getId)).getText().toString(); abc[count].setText(fruit); count++; } }
뭔가 굉장한 코드인거 같네요.
TextView abc[]={text1,text2,text3,text4,text5,text6,text7,text8,text9,text10,text11,text12};
를 선언하신 이유가 무엇인가요?
for(i=0;i<=8;++i)
{
if(v.getId()==R.id.button1){
abc[i].setText("사과");
}
else if(v.getId()==R.id.button2){
abc[i].setText("귤");
}
else if(v.getId()==R.id.button3){
abc[i].setText("배");
}
else if(v.getId()==R.id.button4){
abc[i].setText("복숭아");
}
else if(v.getId()==R.id.button5){
abc[i].setText("천혜향");
}
else if(v.getId()==R.id.button6){
abc[i].setText("감자");
}
else if(v.getId()==R.id.button7){
abc[i].setText("신어기");
}
else if(v.getId()==R.id.button8){
abc[i].setText("사과");}}
}
를 하신 이유는 무엇인가요?
에러 로그를 정확히 캡쳐해서 올려 주시면 답변이 더 빠를것입니다.