안드로이드 개발 질문/답변
(글 수 45,052)

소스 자체에는 에러가 없다고 뜨는데 에뮬레이터나 실제 기기에 올려보면 계속 예상치 못하게 중지 됐다고 튕기더군요.
사진처럼 이동을 하려고 하는 거고요.
소스는
package work.card.manage;
import android.app.Activity;
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.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
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.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class Card_Management extends Activity {
private static final String TAG = "Card";
OnClickListener Handler = new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.view1 :
Intent intent = new Intent(Card_Management.this, Tab.class);
startActivity(intent);
break;
case R.id.view2 :
intent = new Intent(Card_Management.this, Tab.class);
startActivity(intent);
break;
case R.id.view3 :
intent = new Intent(Card_Management.this, Tab.class);
startActivity(intent);
break;
}
}
};
/** Called when the activity is first created. */
private String[] items={" 카드sms", " 캘린더", " 환경 설정"};
private int[] images = {R.drawable.red, R.drawable.blue, R.drawable.green};
/*
* 뒤쪽에서 선언해줄 사용자 정의 어댑터의 객체를 생성, 리스트 뷰의 adapter로 지정*/
@Override
public void onCreate(Bundle savedInstanceState) {
Log.v(TAG, "start : 1");
super.onCreate(savedInstanceState);
Log.v(TAG, "start : 2");
setContentView(R.layout.main);
Log.v(TAG, "start : 3");
findViewById(R.id.view1).setOnClickListener(Handler);
Log.v(TAG, "start : " + R.id.view1);
findViewById(R.id.view2).setOnClickListener(Handler);
findViewById(R.id.view3).setOnClickListener(Handler);
ListView list = (ListView)findViewById(R.id.list);
IconicAdapter iAdapter = new IconicAdapter(this);
list.setAdapter((ListAdapter) iAdapter);
OnClickListener Handler = new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.view1 :
Intent intent = new Intent(Card_Management.this, Tab.class);
startActivity(intent);
break;
case R.id.view2 :
intent = new Intent(Card_Management.this, Tab.class);
startActivity(intent);
break;
case R.id.view3 :
intent = new Intent(Card_Management.this, Tab.class);
startActivity(intent);
break;
}
}
};
/** Called when the activity is first created. */
private String[] items={" 카드sms", " 캘린더", " 환경 설정"};
private int[] images = {R.drawable.red, R.drawable.blue, R.drawable.green};
/*
* 뒤쪽에서 선언해줄 사용자 정의 어댑터의 객체를 생성, 리스트 뷰의 adapter로 지정*/
@Override
public void onCreate(Bundle savedInstanceState) {
Log.v(TAG, "start : 1");
super.onCreate(savedInstanceState);
Log.v(TAG, "start : 2");
setContentView(R.layout.main);
Log.v(TAG, "start : 3");
findViewById(R.id.view1).setOnClickListener(Handler);
Log.v(TAG, "start : " + R.id.view1);
findViewById(R.id.view2).setOnClickListener(Handler);
findViewById(R.id.view3).setOnClickListener(Handler);
ListView list = (ListView)findViewById(R.id.list);
IconicAdapter iAdapter = new IconicAdapter(this);
list.setAdapter((ListAdapter) iAdapter);
}
class IconicAdapter extends ArrayAdapter<Object> {
Activity context;
IconicAdapter(Activity context)
{
super(context, R.layout.list_item, items);
this.context = context;
}
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = context.getLayoutInflater();
View row = inflater.inflate(R.layout.list_item, null);
ImageView itemImage = (ImageView)row.findViewById(R.id.list_img);
itemImage.setImageResource(images[position]);
TextView nameText = (TextView)row.findViewById(R.id.list_txt_name);
nameText.setText(items[position]);
return row;
}
}
}
탭뷰의 소스는
package work.card.manage;
import android.app.TabActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;
public class Tab extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabHost = getTabHost();
LayoutInflater.from(this).inflate(R.layout.tab, tabHost.getTabContentView(), true);
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("일별/월별")
.setContent(R.id.view1));
tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator("캘린더")
.setContent(R.id.view2));
tabHost.addTab(tabHost.newTabSpec("tab3")
.setIndicator("환경설정")
.setContent(R.id.view3));
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabHost = getTabHost();
LayoutInflater.from(this).inflate(R.layout.tab, tabHost.getTabContentView(), true);
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("일별/월별")
.setContent(R.id.view1));
tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator("캘린더")
.setContent(R.id.view2));
tabHost.addTab(tabHost.newTabSpec("tab3")
.setIndicator("환경설정")
.setContent(R.id.view3));
}
}
입니다.
이렇게 인텐트 줘서 연결을 시도해봤는데...
코드상에선 에러가 없는데 저 쪽에 로그 준 쪽에 3번까지 가고서 튕겨버리더군요.
책이랑 인터넷 소스를 참고해서 만든건데 단일 클래스로 만들어 실행시 문제가 없는데 연결하려고 하니까 이렇게 되어 버리네요.
뭐가 문젠지 알 수 있을까요??
로그 화면도 같이 올립니다.




NullPointerException이 있네요
work.card.manage.Card_Mana.. 에서 짤리셨음;;
그쪽에 무언가가 null값인 듯 싶습니다