안드로이드 개발 질문/답변
(글 수 45,052)
현재 리스트 뷰를 이용하여 메뉴를 출력하려 합니다.
처음 화면은 Button 을 이용하여 6개의 버튼중 하나를 누르면 다른 Activity 가 실행되어 ,
그곳에서 리스트 뷰가 출력되도록 하려고 합니다.
처음부터 리스트뷰를 띠우는것은 기능이 잘 되지만,
버튼을 누르면 리스트뷰를 띠우는것이 잘 되지 않습니다.. 프로세스 오류 발생..
무엇이 문제인지 이유를 잘 모르겠습니다..
main.xml 에 리스트뷰 를 설정해줘야 하는것인가.. 라는 의문도 가져봐서 해봤지만 되지도 않고..
코드 올리겠습니다.
첫번째 화면 .java
package com.android.sample.Schoolbus;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.content.Intent;
public class SchoolbusActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/////////////////////////
Button goschoolbutton = (Button) findViewById(R.id.goschool); //버튼에 대한 이름 지정
goschoolbutton.setOnClickListener(new View.OnClickListener() { //이벤트 지정
public void onClick(View v) {
Intent intent = new Intent(SchoolbusActivity.this, goschoolActivity.class); // 두번째 액티비티를 실행하기 위한 인텐트
startActivity(intent); // 두번째 액티비티를 실행합니다.
}
/////////////////////////////////
});}
}버튼을 클릭하면 실행되난 goschoolActivity.class 파일입니다.
public class goschoolActivity extends ListActivity{
/** Called when the activity is first created. */
TextView selection;
///////////////////////////////
String[] menu = {"ContactAdapter", "Track Points"};
/* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.goschool);
setListAdapter(new ArrayAdapter<String>(this,R.layout.list_items,menu));
selection = (TextView)findViewById(com.android.sample.Schoolbus.R.id.selection);
//actions.put(menu[0], new Intent(this,SchoolbusActivity.class));
//actions.put(menu[1], new Intent(this,SchoolbusActivity.class));
/*
setListAdapter(new ArrayAdapter<String>(this,
R.layout.simple_list_items,
menu));*/
}
/* (non-Javadoc)
* @see android.app.ListActivity#onListItemClick(android.widget.ListView, android.view.View, int, long)
*/
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
selection.setText(menu[position]);
}
}main.xml 파일입니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout android:id="@+id/LinearLayout01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center">
<Button android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/goschool"
android:gravity="center_vertical"
android:width="130px" android:id="@+id/goschool"></Button>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayout02" android:layout_height="wrap_content" android:gravity="center" android:layout_width="fill_parent"><Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/gohome" android:gravity="center_vertical" android:width="130px" android:id="@+id/gohome"></Button>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayout03" android:layout_height="wrap_content" android:gravity="center" android:layout_width="fill_parent"><Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/saturday" android:gravity="center_vertical" android:width="130px" android:id="@+id/saturday"></Button>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayout04" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center"><Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/holiday" android:gravity="center_vertical" android:width="130px" android:id="@+id/holiday"></Button></LinearLayout>
</LinearLayout>
list_item.xml 파일입니다.
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/selection" android:layout_width="fill_parent" android:layout_height="wrap_content"> </TextView>
goschool.xml 파일입니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/selection"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello">
</TextView><ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
버튼액티비티 화면에서 -> 리스트액티비티로 넘어가지 못하는것인지,
아니면 버튼 액티비티 화면도 listActivity 를 사용해야하는지,
아니면 main.xml 을 리스트뷰 형식으로 바꿔야 하는것인지 감이 안잡힙니다 이유를 모르겠어요 ㅠㅠ



