안드로이드 개발 질문/답변
(글 수 45,052)
현재 만드는 디자인이
-------------------------------------------------
| A | B |
|------------------------------------------------|
| |
| |
| C |
| |
|------------------------------------------------|
| D | E | F |
|------------------------------------------------|
이렇게 되는데요
DEF 가 주 메뉴고 AB는 항상 유동적으로 변하는 메뉴입니다.
지금 제가 구성한것이 처음 화면에는
-------------------------------------------------
| |
| |
| D |
| |
| E |
| |
| F |
| |
|------------------------------------------------|
이렇게 선택하고 각 선택했을 때에는 해당 항목이 뜨도록 되있습니다.
제가 개발을 처음하는 지라 지금 xml 을 main.xml D.xml E.xml F.xml 이렇게 4개를 만들었는데요
문제가 A 와 B 둘다 웹을 파싱시키는 것인데 구조도 같아서
단순히 url 만 수정하면 됩니다.
그래서 전역변수 Choice_Number 를 두고서 이것의 값에 따라 URL를 읽는 것을 틀리게 했거든요.
if (choice_number == 1){
url = new URL(http://naver.com);
}
else if (choice_number == 2){
url = new URL(http://android.com);
}
그리고 B 버튼을 누를 시에는
choice_number = 2;
Intent B = new Intent(this,D.class);
B.putExtra("choice_number",choice_number);
startActivity(B);
이런식으로 자신의 클래시를 한번더 호출하면서 전역변수값을 설정하고 넘겨줘서 그것을 읽음으로써
URL을 틀리게 하려고했는데 그게 잘 안되네요;
보통 이런식으로 작업할때 저처럼 자기 자신을 Intent 하게 하나요? 아니면 다른 방법을 쓰나요?
제가 한 방법이 맞으면 왜 안되죠?;;
소스
혹시나 소스부분에 수정해야할 것들이 있다면 충고좀 부탁드립니다.
특히 OnClick 부분에서 저 소스 너무 지저분한 것같네요;;
제가 잘 모르는 편이라서 쉽게쉽게 설명해주시면 대단히 감사하겠습니다;;
아니 그냥 원래 질문만 해결해주셔도 감사해요 ㅠㅠ
저거 인텐트 왜안되지;; 내가 무슨 방법이 틀렸나.. 아니면 방법이 맞는데 뭔가 삽질한것인가;; 영 찜찜;;
그리고 혹여 이 글에 대답해 주시기 위해서 열심히 보신분들 2011년 원하는 꿈들이 이뤄지는 행복한 새해가 되었으면 좋겠습니다.
-------------------------------------------------
| A | B |
|------------------------------------------------|
| |
| |
| C |
| |
|------------------------------------------------|
| D | E | F |
|------------------------------------------------|
이렇게 되는데요
DEF 가 주 메뉴고 AB는 항상 유동적으로 변하는 메뉴입니다.
지금 제가 구성한것이 처음 화면에는
-------------------------------------------------
| |
| |
| D |
| |
| E |
| |
| F |
| |
|------------------------------------------------|
이렇게 선택하고 각 선택했을 때에는 해당 항목이 뜨도록 되있습니다.
제가 개발을 처음하는 지라 지금 xml 을 main.xml D.xml E.xml F.xml 이렇게 4개를 만들었는데요
문제가 A 와 B 둘다 웹을 파싱시키는 것인데 구조도 같아서
단순히 url 만 수정하면 됩니다.
그래서 전역변수 Choice_Number 를 두고서 이것의 값에 따라 URL를 읽는 것을 틀리게 했거든요.
if (choice_number == 1){
url = new URL(http://naver.com);
}
else if (choice_number == 2){
url = new URL(http://android.com);
}
그리고 B 버튼을 누를 시에는
choice_number = 2;
Intent B = new Intent(this,D.class);
B.putExtra("choice_number",choice_number);
startActivity(B);
이런식으로 자신의 클래시를 한번더 호출하면서 전역변수값을 설정하고 넘겨줘서 그것을 읽음으로써
URL을 틀리게 하려고했는데 그게 잘 안되네요;
보통 이런식으로 작업할때 저처럼 자기 자신을 Intent 하게 하나요? 아니면 다른 방법을 쓰나요?
제가 한 방법이 맞으면 왜 안되죠?;;
소스
package IU.pack;
import java.net.URL; import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserFactory;
import android.app.Activity; import android.app.ListActivity; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.TextView;
//Made By Rint Ian Tta //Rel-T ovent -ananiat EnSa //Insung.
public class food extends ListActivity implements OnClickListener{ int choice_number; // 이것이 전역변수 입니다. 읽는 값에 따라서 읽어야할 URL을 설정합니다 private ImageButton notice_btn; private ImageButton job_btn; private ImageButton library_btn; private ImageButton map_btn; private ImageButton food_btn; private ImageButton book_btn; private ImageButton traffic_btn;
private ImageButton next1_btn; private ImageButton next2_btn; ////////////////////// TextView dateTextView; TextView timeTextView; TextView nameTextView; TextView priceTextView; TextView kcalTextView; Button food_1; Button food_2; Button food_3; ArrayList<Weather> weather = new ArrayList<Weather>(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.food); /////////////////////////////////////////////////// notice_btn = (ImageButton)findViewById(R.id.notice_btn); job_btn = (ImageButton)findViewById(R.id.job_btn); library_btn = (ImageButton)findViewById(R.id.library_btn); map_btn = (ImageButton)findViewById(R.id.map_btn); food_btn = (ImageButton)findViewById(R.id.food_btn); book_btn = (ImageButton)findViewById(R.id.book_btn); traffic_btn = (ImageButton)findViewById(R.id.traffic_btn);
next1_btn = (ImageButton)findViewById(R.id.next1_btn); next2_btn = (ImageButton)findViewById(R.id.next2_btn); notice_btn.setOnClickListener(this); job_btn.setOnClickListener(this); library_btn.setOnClickListener(this); map_btn.setOnClickListener(this); food_btn.setOnClickListener(this); book_btn.setOnClickListener(this); traffic_btn.setOnClickListener(this);
next1_btn.setOnClickListener(this); next2_btn.setOnClickListener(this);
food_1 = (Button)findViewById(R.id.food1); food_2 = (Button)findViewById(R.id.food2); food_3 = (Button)findViewById(R.id.food3);
food_1.setOnClickListener(this); food_2.setOnClickListener(this); food_3.setOnClickListener(this); ///////////////////////////////////////////////////////////// try { URL url = null; if (choice_number == 1){ url = new URL(http://naver.com); } else if (choice_number == 2){ url = new URL(http://yahoo.co.kr); } else { url = new URL(http://android.co.kr); } XmlPullParserFactory parserFactory = XmlPullParserFactory.newInstance(); XmlPullParser parser = parserFactory.newPullParser(); parser.setInput(url.openStream(), "utf-8"); ///////////////////////////////////////////////////////////////////////// int parserEvent = parser.getEventType(); String tag="ready..!";
String Date=""; String Time=""; String Name=""; String Price = "";
String Kcal = "";
Log.d("parserTest","Dcvbcvbbvc "); int i=0; while(parserEvent != XmlPullParser.END_DOCUMENT){ switch(parserEvent){ case XmlPullParser.START_DOCUMENT: Log.d("parserTest", "Parser Start..!"); break; case XmlPullParser.END_DOCUMENT: Log.d("parserTest", "Parser End..!"); break; case XmlPullParser.START_TAG: tag = parser.getName(); Log.d("parserTest", "start_tag : "+tag); break; case XmlPullParser.TEXT:
if(tag.equals("Date")){ Date = parser.getText(); Log.d("parserTest","Date : "+Date); } if(tag.equals("Time")){ Time = parser.getText(); Log.d("parserTest","Time : "+Time); } if(tag.equals("Name")){ Name = parser.getText(); Log.d("parserTest","Name : "+Name); } if(tag.equals("Price")){ Price = parser.getText(); Log.d("parserTest","Price : "+Price); } if(tag.equals("Kcal")){ Kcal = parser.getText(); Log.d("parserTest","Kcal : "+Kcal); } break; case XmlPullParser.END_TAG:
Log.d("parserTest","END TAG : "+tag); if(tag.equals("Native")){ Log.d("parserTest","DATA ADD"); Weather imsi = new Weather(Date,Time,Name,Price,Kcal);
weather.add(imsi); } tag = "nothing"; break; } parserEvent = parser.next(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Log.d("parserTest","error"); }
setListAdapter(new CustomRow(this)); }
public void onClick(View view){ final LinearLayout tab1 = (LinearLayout)findViewById(R.id.tab1); final LinearLayout tab2 = (LinearLayout)findViewById(R.id.tab2);
final LinearLayout notice = (LinearLayout)findViewById(R.id.notice); final LinearLayout job = (LinearLayout)findViewById(R.id.job); final LinearLayout library = (LinearLayout)findViewById(R.id.library); final LinearLayout map = (LinearLayout)findViewById(R.id.map); final LinearLayout food = (LinearLayout)findViewById(R.id.food); final LinearLayout book = (LinearLayout)findViewById(R.id.book); final LinearLayout traffic = (LinearLayout)findViewById(R.id.traffic); switch(view.getId()){ case R.id.notice_btn: notice.setVisibility(LinearLayout.VISIBLE); job.setVisibility(LinearLayout.GONE); library.setVisibility(LinearLayout.GONE); map.setVisibility(LinearLayout.GONE); food.setVisibility(LinearLayout.GONE); book.setVisibility(LinearLayout.GONE); traffic.setVisibility(LinearLayout.GONE); break; case R.id.job_btn: notice.setVisibility(LinearLayout.GONE); job.setVisibility(LinearLayout.VISIBLE); library.setVisibility(LinearLayout.GONE); map.setVisibility(LinearLayout.GONE); food.setVisibility(LinearLayout.GONE); book.setVisibility(LinearLayout.GONE); traffic.setVisibility(LinearLayout.GONE); break; case R.id.library_btn: notice.setVisibility(LinearLayout.GONE); job.setVisibility(LinearLayout.GONE); library.setVisibility(LinearLayout.VISIBLE); map.setVisibility(LinearLayout.GONE); food.setVisibility(LinearLayout.GONE); book.setVisibility(LinearLayout.GONE); traffic.setVisibility(LinearLayout.GONE); break; case R.id.map_btn: notice.setVisibility(LinearLayout.GONE); job.setVisibility(LinearLayout.GONE); library.setVisibility(LinearLayout.GONE); map.setVisibility(LinearLayout.VISIBLE); food.setVisibility(LinearLayout.GONE); book.setVisibility(LinearLayout.GONE); traffic.setVisibility(LinearLayout.GONE); break; case R.id.food_btn: notice.setVisibility(LinearLayout.GONE); job.setVisibility(LinearLayout.GONE); library.setVisibility(LinearLayout.GONE); map.setVisibility(LinearLayout.GONE); food.setVisibility(LinearLayout.VISIBLE); book.setVisibility(LinearLayout.GONE); traffic.setVisibility(LinearLayout.GONE); break; case R.id.book_btn: notice.setVisibility(LinearLayout.GONE); job.setVisibility(LinearLayout.GONE); library.setVisibility(LinearLayout.GONE); map.setVisibility(LinearLayout.GONE); food.setVisibility(LinearLayout.GONE); book.setVisibility(LinearLayout.VISIBLE); traffic.setVisibility(LinearLayout.GONE); break; case R.id.traffic_btn: notice.setVisibility(LinearLayout.GONE); job.setVisibility(LinearLayout.GONE); library.setVisibility(LinearLayout.GONE); map.setVisibility(LinearLayout.GONE); food.setVisibility(LinearLayout.GONE); book.setVisibility(LinearLayout.GONE); traffic.setVisibility(LinearLayout.VISIBLE); break; case R.id.next1_btn: tab1.setVisibility(LinearLayout.GONE); tab2.setVisibility(LinearLayout.VISIBLE); break; case R.id.next2_btn: tab1.setVisibility(LinearLayout.VISIBLE); tab2.setVisibility(LinearLayout.GONE); break; //////////////////////////////////////////////////////////// 이 부분이 전역변수로 설정한 값들을 인텐트로 넘기는 부분입니다/////////////////////// case R.id.food1: choice_number = 1; Intent food1 = new Intent(this,food.class); food1.putExtra("choice_number",choice_number); startActivity(food1); break; case R.id.food2: choice_number = 2; Intent food2 = new Intent(this,food.class); food2.putExtra("choice_number",choice_number); startActivity(food2); break; case R.id.food3: choice_number = 3; Intent food3 = new Intent(this,food.class); food3.putExtra("choice_number",choice_number); startActivity(food3); break; ////////////////////////////////////////////////////////////////////////////////////////////////////////////// } }
혹시나 소스부분에 수정해야할 것들이 있다면 충고좀 부탁드립니다.
특히 OnClick 부분에서 저 소스 너무 지저분한 것같네요;;
제가 잘 모르는 편이라서 쉽게쉽게 설명해주시면 대단히 감사하겠습니다;;
아니 그냥 원래 질문만 해결해주셔도 감사해요 ㅠㅠ
저거 인텐트 왜안되지;; 내가 무슨 방법이 틀렸나.. 아니면 방법이 맞는데 뭔가 삽질한것인가;; 영 찜찜;;
그리고 혹여 이 글에 대답해 주시기 위해서 열심히 보신분들 2011년 원하는 꿈들이 이뤄지는 행복한 새해가 되었으면 좋겠습니다.
choice_number를 Extra로 넣어줬는데 이걸 빼내는 부분이 전혀 없는데요...
주기만 하고 가져다 쓰지 않으면 의미가 없겠죠....