안드로이드 개발 질문/답변
(글 수 45,052)
package net.npaka.optionmenuex;
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List;
import android.app.ListActivity; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.graphics.Color; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.LinearLayout;
import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.view.View; import android.view.Window; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.ImageView;
//옵션 메뉴 public class OptionMenuEx extends ListActivity { // 메뉴 항목 ID private static final int MENU_ITEM0 = 0, MENU_ITEM1 = 1;
ArrayList<HashMap<String, String>> items = new ArrayList<HashMap<String, String>>(); //배열리스트
// 어플리케이션 초기화 @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); requestWindowFeature(Window.FEATURE_NO_TITLE);
// 레이아웃 생성 LinearLayout layout = new LinearLayout(this); layout.setBackgroundColor(Color.rgb(255, 255, 255)); //배경색을 하얀색으로 layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout);
// 텍스트 뷰 생성 TextView textView = new TextView(this); textView.setText("menu를 눌러주세요."); textView.setTextSize(16.0f); //폰트 16 textView.setTextColor(Color.rgb(0, 0, 0)); //글색 검은색
// 컴포넌트 크기 지정 setLLParams(textView);
// 레이아웃 컴포넌트 추가 layout.addView(textView);
// 그림 읽어 들이기 //Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.lotto);
// 이미지 뷰 생성 //ImageView imageView = new ImageView(this); //imageView.setImageBitmap(bitmap); //setLLParams(imageView); //layout.addView(imageView); }
private static void setLLParams(View view) { view.setLayoutParams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); }
// 옵션 메뉴 생성 @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu);
// 메뉴 항목번호돌리기 추가 MenuItem item0 = menu.add(0, MENU_ITEM0, 0, "번호돌리기"); item0.setIcon(android.R.drawable.ic_menu_add);
// 메뉴 항목지우기 추가 MenuItem item1 = menu.add(0, MENU_ITEM1, 0, "지우기"); item1.setIcon(android.R.drawable.ic_menu_call);
return true; }
public boolean onMenuItemSelected(int featureId, MenuItem item) { super.onMenuItemSelected(featureId, item); switch (item.getItemId()) { case MENU_ITEM0: int idx = items.size() + 1; String idStr = String.valueOf(idx); //int 형태인 idx를 string로 바꿔서 idStr에 저장 String str = getLottoStr(); //getLottoStr에서 리턴된 값을 str에 저장 HashMap<String, String> map = new HashMap<String, String>(); //HashMap<키타입, 데이터타입> map.put("ID", idStr); //ID라는 자리에 idStr값을 넣는다. map.put("LottoData", str); //LottoData자리에 str값을 넣는다. items.add(map); //HashMap을 items리스트에 넣는다.
break; case MENU_ITEM1: items.clear(); //출력된 화면 지우기 break; default: return true; }
fillData(); return true; }
// 로또 숫자를 문자열로 반환 private String getLottoStr() { String str = "자동 "; ArrayList<Integer> lst = new ArrayList<Integer>(); //배열리스트 생성 for (int i = 0; i < 45; i++) { //i를 0부터 44까지 돌리고 lst.add(i + 1); //i값을 리스트에 저장 } Collections.shuffle(lst); //lst 리스트을 섞는다. for (int i = 0; i < 6; i++) { //i를 0부터 5까지 증가시키고 str += String.valueOf(lst.get(i)); //0번 리스트부터 5번리스트까지 저장된 값을 str에 저장한다. if (i != 5) { str += ", "; //번호하나가 나오고 ,를 찍는다. } } return str; //str값 리턴 }
private void fillData() { SimpleAdapter mSchedule = new SimpleAdapter(this, items, R.layout.main, new String[] { "ID", "LottoData" }, new int[] { R.id.id_cell, R.id.data_cell }); setListAdapter(mSchedule); } }
이게 무슨 오류죠 .. (첨부파일 확인..)
로또 어플 만들고있는데 무슨 오류인지 ....... 모르겠어요