(첫 번째 화면) (두번째 화면) (이 항목이 '카드종류' 아래에 표기되기를 원함)
안녕하세요. 몇 일전에 자바와 안드로이드 책을 한번씩 읽은 초보입니다.
이러한 제가 이런 공간을 글을 남기게되어 먼저 죄송하게 생각합니다.
어느정도는 알고 질문을 해야하는데...너무 답답한 마음에 글을 씁니다.
무작정 책만 보고 있자니...답답해서
생각한 프로그램을 짜면서 하나씩 배우기로 맘 먹었습니다.
제가 만들어보고 싶은 프그램음은 'DB 관리 프로그램'입니다.
먼저 UI를 모두 구성하고 DB를 연동시킬려고 생각하고 있습니다.
맞는 생각인지 모르겠습니다.
제가 궁금한 것은
' 첫번째 화면'에서 '두번째 화면'으로 넘어가는 것입니다.
그리고 두번째 화면에서 '항목1,2,3' 으로 되어있는 ListView가 두번째 화면에 추가되는 것입니다.
현재는 오류가 떠서 아무것도 보이지 않습니다.ㅠㅠ 도와주세요
책을 보면, Itent와 contentprovider 를 사용해야할 것 같은데....
이 방법만 알면 다른 UI도 어느정도 쉽게 술술 나갈꺼 같은데....처음이 막히 막막합니다.
소스코드도 모두 올르겠습니다.
MemberShip1.java
package com.example.memberShip1;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.ArrayAdapter;
import android.widget.AdapterView;
import android.content.Intent;
public class MemberShip1 extends Activity {
ImageButton MainImageButton01;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MainImageButton01=(ImageButton)findViewById(R.id.MainImageButton01);
MainImageButton01.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v1){
setContentView(R.layout.mainlist);
Intent intent = new Intent(MemberShip1.this, MemberShip_mainlist.class);
startActivity(intent);
}
});
}
}
MemverShip_mainlist.java
package com.example.memberShip1;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MemberShip_mainlist extends Activity {
private String[] items = {"항목1", "항목2", "항목3"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1, items);
ListView lv = (ListView)findViewById(R.id.ListView01);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
//Toast.makeText(ListViewDemo.this, "Clicked _id=" + id, Toast.LENGTH_SHORT).show();
}
});
}
}
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"
>
<TextView
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="포인트 카드 관리"
android:textSize="20sp"
android:textStyle="bold"
/>
<ImageButton
android:id="@+id/MainImageButton01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/icon"/>
</LinearLayout>
mainlist.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff009999"
android:orientation="vertical">
<RelativeLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/MainListButton01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="Back"/>
<TextView
android:text="카 드 종 류"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:textSize="20sp"
android:textStyle="bold"/>
<Button
android:id="@+id/MainImageButton02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="Next"/>
</RelativeLayout>
<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:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ListView
android:id="@+id/ListView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"></ListView>
</LinearLayout>
</LinearLayout>
정말 절실합니다. 도와주세요.
감사합니다.
첫번째 화면에서 이미지버튼을 클릭한 순간 이후부터의 로그입니다. 관심을 가져주셔서 감사합니다.
08-06 05:43:53.688: DEBUG/dalvikvm(198): GC freed 702 objects / 63272 bytes in 109ms
08-06 05:43:58.738: DEBUG/dalvikvm(97): GC freed 6825 objects / 408128 bytes in 151ms
08-06 05:44:03.637: INFO/ActivityManager(53): Starting activity: Intent { cmp=com.example.memberShip1/.MemberShip_mainlist }
08-06 05:44:03.767: DEBUG/AndroidRuntime(320): Shutting down VM
08-06 05:44:03.767: WARN/dalvikvm(320): threadid=3: thread exiting with uncaught exception (group=0x4001aa28)
08-06 05:44:03.767: ERROR/AndroidRuntime(320): Uncaught handler: thread main exiting due to uncaught exception
08-06 05:44:03.797: ERROR/AndroidRuntime(320): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.memberShip1/com.example.memberShip1.MemberShip_mainlist}: java.lang.NullPointerException
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at android.app.ActivityThread.access$2100(ActivityThread.java:116)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at android.os.Handler.dispatchMessage(Handler.java:99)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at android.os.Looper.loop(Looper.java:123)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at android.app.ActivityThread.main(ActivityThread.java:4203)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at java.lang.reflect.Method.invokeNative(Native Method)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at java.lang.reflect.Method.invoke(Method.java:521)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at dalvik.system.NativeStart.main(Native Method)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): Caused by: java.lang.NullPointerException
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at com.example.memberShip1.MemberShip_mainlist.onCreate(MemberShip_mainlist.java:23)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
08-06 05:44:03.797: ERROR/AndroidRuntime(320): ... 11 more
08-06 05:44:03.817: INFO/Process(53): Sending signal. PID: 320 SIG: 3
08-06 05:44:03.827: INFO/dalvikvm(320): threadid=7: reacting to signal 3
08-06 05:44:03.827: ERROR/dalvikvm(320): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
08-06 05:44:13.709: WARN/ActivityManager(53): Activity idle timeout for HistoryRecord{438fd950 com.example.memberShip1/.MemberShip_mainlist}
레이아웃을 main쓰는게 맞나요?
setContentView(R.layout.main);
를
setContentView(R.layout.mainlist);
로 해야 원하시는 의도대로 하시는 것 같은데요.
제가 보기에 에러는 디버깅을 돌리시면 아시겠지만...
ListView lv = (ListView)findViewById(R.id.ListView01);
에서 lv값을 확인해 보시면 null이 나올 것 같네요.