안드로이드 개발 질문/답변
(글 수 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로 넣어줬는데 이걸 빼내는 부분이 전혀 없는데요...
주기만 하고 가져다 쓰지 않으면 의미가 없겠죠....