안드로이드 개발 질문/답변
(글 수 45,052)
자바를 공부하면서 앱개발에 무턱대도 뛰어들었다가 고생하고 있는 1인입니다^^;
다름이 아니라 제가 여러 청소,조리,세탁법을 소개하는 앱을 만들고 있는데..
일단
package App.create;
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;
public class Cookmenu extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cook);
Button button01 = (Button)findViewById(R.id.cook_button01); Button button02 = (Button)findViewById(R.id.cook_button02); Button button03 = (Button)findViewById(R.id.cook_button03); Button button04 = (Button)findViewById(R.id.cook_button04); Button button05 = (Button)findViewById(R.id.cook_button05); CookMenuClickListener listener = new CookMenuClickListener(); button01.setOnClickListener(listener); button02.setOnClickListener(listener); button03.setOnClickListener(listener); button04.setOnClickListener(listener); button05.setOnClickListener(listener); }
private class CookMenuClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int id = v.getId();
Intent intent = new Intent(Cookmenu.this, ListViewCook.class);
if(id == R.id.cook_button01){
intent.putExtra("CookMenu", 1);
}
else if(id == R.id.cook_button02){
intent.putExtra("CookMenu", 2);
}
else if(id == R.id.cook_button03){
intent.putExtra("CookMenu", 3);
}
else if(id == R.id.cook_button04){
intent.putExtra("CookMenu", 4);
}
else if(id == R.id.cook_button05){
intent.putExtra("CookMenu", 5);
}
startActivity(intent);
}
} }
이렇게 하여 메인메뉴를 만들었고
package App.create;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class ListViewCook extends ListActivity {
//String CookMethod[] = {""};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
int id = intent.getIntExtra("CookMenu", 0);
String[] cook = {""};
ListView lv;
if(id == 1){
cook = getResources().getStringArray(R.array.cook_array);
//CookMethod = getResources().getStringArray(R.array.CookMethod_array);
}
else if(id == 2){
cook = getResources().getStringArray(R.array.cook_array1);
//CookMethod = getResources().getStringArray(R.array.CookMethod_array1);
}
else if(id == 3){
cook = getResources().getStringArray(R.array.cook_array2);
//CookMethod = getResources().getStringArray(R.array.CookMethod_array2);
}
else if(id == 4){
cook = getResources().getStringArray(R.array.cook_array3);
//CookMethod = getResources().getStringArray(R.array.CookMethod_array3);
}
else if(id == 5){
cook = getResources().getStringArray(R.array.cook_array4);
//CookMethod = getResources().getStringArray(R.array.CookMethod_array4);
}
setListAdapter(new ArrayAdapter<String>(this, R.layout.list, cook));
lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent,
View view, int position, long id) {
switch(position){
case 0:
Intent intent = new Intent(ListViewCook.this,CookMethod.class);
startActivity(intent);
break;
case 1:
Intent intent1 = new Intent(ListViewCook.this,CookMethod.class);
startActivity(intent1);
break;
case 2:
Intent intent2 = new Intent(ListViewCook.this,CookMethod.class);
startActivity(intent2);
break;
case 3:
Intent intent3 = new Intent(ListViewCook.this,CookMethod.class);
startActivity(intent3);
break;
case 4:
Intent intent4 = new Intent(ListViewCook.this,CookMethod.class);
startActivity(intent4);
break;
case 5:
Intent intent5 = new Intent(ListViewCook.this,CookMethod.class);
startActivity(intent5);
break;
case 6:
Intent intent6 = new Intent(ListViewCook.this,CookMethod.class);
startActivity(intent6);
break;
case 7:
Intent intent7 = new Intent(ListViewCook.this,CookMethod.class);
startActivity(intent7);
break;
case 8:
Intent intent8 = new Intent(ListViewCook.this,CookMethod.class);
startActivity(intent8);
break;
case 9:
Intent intent9 = new Intent(ListViewCook.this,CookMethod.class);
startActivity(intent9);
break;
case 10:
Intent intent10 = new Intent(ListViewCook.this,CookMethod.class);
startActivity(intent10);
break;
}
}
});
}
}
이러케하여 액티비티를 생성하였고
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="clean_array"> <item>세수대야 물때 제거</item> <item>세면대 청소</item> <item>샤워기or수도꼭지 청소</item> <item>욕실 악취 제거</item> <item>배수구가 막혔을 경우</item> <item>샤워기 수압이 약할 경우</item> <item>변기 청소</item> <item>세탁기 통 안 때 제거</item> <item>타일 사이의 곰팡이 제거</item> <item>실리콘 콤팡이 제거</item> </string-array>
<string-array name="clean_array1"> <item>컵,접시 포개져 잘 빠지지 않을 경우</item> <item>보온병 악취 제거</item> <item>그릇 상표제거</item> <item>오븐 냄세 제거</item> <item>주방바닥의 기름 청소</item> <item>싱크대 청소</item> <item>냉동실 성에 제거</item> <item>냉장고 냄새 제거</item> <item>음식물 쓰레기 냄새 없앨 경우</item> <item>음식물 쓰레기 보관</item> <item>나무 도마 청소</item> <item>프라이팬 기름때가 심할 경우</item> <item>사용후 남은 기름제거할 경우</item> </string-array>
<string-array name="clean_array2"> <item>소파 청소</item> <item>벽지 주름 제거</item> <item>방문의 검은 때 제거</item> <item>벽지 청소</item> <item>바닥의 기름제거</item> <item>바닥의 찌든때 제거</item> <item>바닥의 접착제 제거</item> <item>TV청소</item> <item>곰팡이 예방</item> </string-array>
<string-array name="clean_array3"> <item>유리청소</item> <item>유리에 붙은 스티커 제거</item> <item>창문 틈새 청소</item> <item>방충망 청소</item> </string-array> </resources>
방법을 동일하게 item 을 사용하여
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="CleanMethod_array">
<item>아세톤을 솜에 묻혀 지우면 잘지워진다.</item>
<item>린스를 사용하면 효과적이다.</item>
<item>안쓰는 칫솔에 치약을 묻혀 닦아내면 지워진다.</item>
<item>양초를 켜두면 악취가 사라진다.</item>
<item>소다,식초 1컵씩 부어 거품이 생길때 뜨거운물을 부어주면 뚫린다.</item>
<item>수압문제가 아니면 구멍에 물때가 생긴것이기 때문에
식초물을 만든 후 샤워기를 1~2시간 정도 담가 두었다가 꺼내면 물때가 제거된다.</item>
<item>베이킹파우더 소주2컵,락스를 넣고 10분뒤 솔로 문지르면 깨끗해진다.</item>
<item>수위를 (고)로 하고 식초 한통정도 넣고 5분간 돌려주면 때가 제거된다</item>
<item>물과 베이킹파우더 1:1 비율로 섞어 발생하는 거품으로 타일 사이를 솔로 닦으면 제거된다.</item>
<item>화장지에 표백지를 묻혀 하루동안 올려놓으면 된다.</item>
</string-array>
<string-array name="CleanMethod_array1">
<item>위쪽컵엔 찬물을 붓고 아래컵은 뜨거운물에 담그면 아래컵에 늘어나 쉽게 빠진다.</item>
<item>식초를 사용해 병을 닦아주면 냄새가 사라진다.</item>
<item>그릇을 뜨겁게 한 후 랩을 뭉쳐서 문지르면 깨끗하게 제거된다.</item>
<item>귤껍질을 넣고 가열하면 냄새가 사라진다.</item>
<item>유리세정제를 뿌리고 닦으면 깨끗해진다.</item>
<item>묵은 기름때는 다사용한 녹차 티백을 사용하면 깨끗해진다.</item>
<item>뜨거운 물을 뿌리고 마른걸레로 물기를 제거한 후 식용유를 발라둔다.
식용유를 발라두면 다음 제거시 성에가 쉽게 떨어진다.</item>
<item>사용한 티백을 뜯어 그릇에 모아 냉장고에 넣어두면 효과적이다.</item>
<item>탄산수소나트륨을 1~2스푼 뿌리면 냄새가 나지 않는다.</item>
<item>비닐봉지보다는 양파망이 효과적이다.</item>
<item>소금을 적당히 뿌린 후 수세미로 결따라 문지른 후 행궈 하루정도 일광소독을 해야한다.</item>
<item>1차적으로 신문지를 사용하여 닦은 후 물에 밀가루를 풀어 끓여주면 효과적이다.</item>
<item>밀가루를 뿌린 뒤 골고루 섞어 덩어리로 만들어 버리면 된다.</item>
</string-array>
<string-array name="CleanMethod_array2">
<item>가죽소파는 전문업체에 맡기고, 천소파는 중성세제를 온수에 풀어 소량의 암모니아수
를 떨어뜨리고 브러쉬같은 걸로 닦아내면 지워진다.</item>
<item>부푼 부분을 바늘로 살짝 찌르면 공기가 빠져나가 구김이 쉽게 펴진다. </item>
<item>무즙을 깨끗한 천에 묻혀 더러운 부분을 닦으면 잘 지워진다</item>
<item>칫솔에 식빵조각으로 치약을 묻혀 문지르면 정말 깨끗해진다.</item>
<item>밀가루를 뿌리면 밀가루가 모두 흡수한다.</item>
<item>주방세제와 소주(종이컵1개)를 섞어 닦으면 깨끗해진다</item>
<item>화장지에 콜드크림을 묻혀 닦으면 깨끗해진다.</item>
<item>린스희석액으로 닦으면 먼지,정전지를 방지할 수 있다.</item>
<item>물과알콜을 섞어 분부기로 뿌려두면 효과적이다.</item>
</string-array>
<string-array name="CleanMethod_array3">
<item>분부기로 물을 뿌린 후 3분 뒤 신문지를 말아 닦아내면 된다.</item>
<item>물파스를 묻혀 긁어내면 흔적도 없이 없어진다.</item>
<item>스펀지를 1cm간격으로 칼집을 낸 다음 닦아내면 된다.</item>
<item>방충망 바깥쪽에 신문지나 골판지를 붙이고 진공청소기로 청소한다.</item>
</string-array>
</resources>
</string-array>
<string-array name="clean_array1">
<item>컵,접시 포개져 잘 빠지지 않을 경우</item>
<item>보온병 악취 제거</item>
<item>그릇 상표제거</item>
<item>오븐 냄세 제거</item>
<item>주방바닥의 기름 청소</item>
<item>싱크대 청소</item>
<item>냉동실 성에 제거</item>
<item>냉장고 냄새 제거</item>
<item>음식물 쓰레기 냄새 없앨 경우</item>
<item>음식물 쓰레기 보관</item>
<item>나무 도마 청소</item>
<item>프라이팬 기름때가 심할 경우</item>
<item>사용후 남은 기름제거할 경우</item>
</string-array>
<string-array name="clean_array2">
<item>소파 청소</item>
<item>벽지 주름 제거</item>
<item>방문의 검은 때 제거</item>
<item>벽지 청소</item>
<item>바닥의 기름제거</item>
<item>바닥의 찌든때 제거</item>
<item>바닥의 접착제 제거</item>
<item>TV청소</item>
<item>곰팡이 예방</item>
</string-array>
<string-array name="clean_array3">
<item>유리청소</item>
<item>유리에 붙은 스티커 제거</item>
<item>창문 틈새 청소</item>
<item>방충망 청소</item>
</string-array>
</resources>
이러한식으로 했는데 position에 맞게 리스트뷰로 경우를 클릭하면 방법이 새로운 액티비티에 텍스트 형식으로 나오게 하려면 어찌해야하나요? position 에 맞게 호출하고 싶은데 너무어렵네요ㅠㅠ
코드가 비효율적이지만 일단 이러케하고 좀 더 공부하고 간략화를 하고싶네요!!
많은 조언들 부탁드립니다!!ㅠㅠㅠㅠ




스위치 문이 뭔가 이상하네요. 저렇게 하시지 마시고 그냥 position 값에 해당하는 값을 인텐트에 setData 하셔서 쿡 메소드 액티비티에서쓰시면 될 거 같아요.