마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

dialog의listview에서 item클릭시 activity 전환을 하려고 합니다.

0 추천

아이템을 클릭할 경우 Intent를 사용하여 화면전환하는 소스를 짜 보았는데 잘 안되네요.

AdapterView.OnItemClickListener부분이 잘못됐을 거라고 생각했는데,

 

getContext().startActivity(intent); 이부분에서 에러라고 나타납니다.
 
소스와 에러 첨부함니다,
public class OnedayList extends Dialog {

	public OnedayList(Context context) {
		super(context);
	}
	CalendarDatabase mDb;
	CustomSimpleCursorAdapter adapter;
	AlertDialog.Builder builder;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.dialog);
		list = (ListView)findViewById(R.id.daylist);

		adapter = new CustomSimpleCursorAdapter(OnedayList.this.getContext(), R.layout.listviewitems, result, new String[]{}, new int[]{});

		list.setAdapter(adapter);

		list.setOnItemClickListener(onitemClick);


	}

	AdapterView.OnItemClickListener onitemClick = new AdapterView.OnItemClickListener() {

		@Override
		public void onItemClick(AdapterView<?> parent, View view, int position,
				long l_position) {
			// TODO Auto-generated method stub
			Intent intent = new Intent(getContext().getApplicationContext(),showSchedule.class);
			getContext().startActivity(intent);
		}
	};
	public OnedayList(Context context, String title, String year, String month, String day, View.OnClickListener newListener){
		super(context , android.R.style.Theme_Translucent_NoTitleBar);

		this.mTitle = title;
		this.mNewClickListener = newListener;	
		//		this.mListClickListener = clickListener;
	}

		private void setClickListener(View.OnClickListener newclick){
		if(newclick!=null){
			mNewButton.setOnClickListener(newclick);
		}
		else{

		}
	}
	public class CustomSimpleCursorAdapter extends SimpleCursorAdapter
	{
		private Cursor mCursor;
		private int mLayout;

		class ViewHolder 
		{
			public TextView mTextview;
		}

		public CustomSimpleCursorAdapter(Context context, int layout, Cursor cursor,
				String[] from, int[] to) {
			super(context, layout, cursor, from, to);

			this.mLayout = layout;
			this.mCursor = cursor;
		}

		@Override
		public View newView(Context context, Cursor cursor, ViewGroup parent) {
			LayoutInflater inflater = LayoutInflater.from(context);
			View v = inflater.inflate(mLayout, parent, false);

			ViewHolder viewHolder = new ViewHolder();
			viewHolder.mTextview = (TextView)v.findViewById(R.id.listitem);

			v.setTag(viewHolder);
			return v;
		}

		@Override
		public void bindView(View view, Context context, Cursor cursor) {
			ViewHolder viewHolder = (ViewHolder) view.getTag();
			if (cursor == null)
				return;

			String item = cursor.getString(cursor.getColumnIndex(InterfaceDB.KEY_EvnName));
			if(cursor.getCount()==0)
				viewHolder.mTextview.setText("새 일정을 추가해 주세요");
			viewHolder.mTextview.setText(item); //List에 항목 띄워줌
		}

		@Override
		public void changeCursor(Cursor cursor) {
			if (cursor != mCursor) 
			{
				finishCursor();
				mCursor = cursor;
				super.changeCursor(cursor);
			}
		}

		public void finishCursor() // 커서는 이 액티비티 안에서만 사용하기에 사용 끝난 뒤 종료
		{
			if( mCursor!= null )
				mCursor.close();
			mCursor = null;
		}
	}
}

 

 

04-12 10:36:31.297: E/AndroidRuntime(513): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.crucialsoft.softCalendar/com.crucialsoft.softCalendar.showSchedule}; have you declared this activity in your AndroidManifest.xml?
04-12 10:36:31.297: E/AndroidRuntime(513): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1405)
04-12 10:36:31.297: E/AndroidRuntime(513): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379)
04-12 10:36:31.297: E/AndroidRuntime(513): at android.app.Activity.startActivityForResult(Activity.java:2827)
04-12 10:36:31.297: E/AndroidRuntime(513): at android.app.Activity.startActivity(Activity.java:2933)
04-12 10:36:31.297: E/AndroidRuntime(513): at android.content.ContextWrapper.startActivity(ContextWrapper.java:258)
04-12 10:36:31.297: E/AndroidRuntime(513): at com.crucialsoft.softCalendar.OnedayList$1.onItemClick(OnedayList.java:83)
04-12 10:36:31.297: E/AndroidRuntime(513): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
04-12 10:36:31.297: E/AndroidRuntime(513): at android.widget.ListView.performItemClick(ListView.java:3513)
04-12 10:36:31.297: E/AndroidRuntime(513): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812)
04-12 10:36:31.297: E/AndroidRuntime(513): at android.os.Handler.handleCallback(Handler.java:587)
04-12 10:36:31.297: E/AndroidRuntime(513): at android.os.Handler.dispatchMessage(Handler.java:92)
04-12 10:36:31.297: E/AndroidRuntime(513): at android.os.Looper.loop(Looper.java:130)
04-12 10:36:31.297: E/AndroidRuntime(513): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-12 10:36:31.297: E/AndroidRuntime(513): at java.lang.reflect.Method.invokeNative(Native Method)
04-12 10:36:31.297: E/AndroidRuntime(513): at java.lang.reflect.Method.invoke(Method.java:507)
04-12 10:36:31.297: E/AndroidRuntime(513): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-12 10:36:31.297: E/AndroidRuntime(513): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-12 10:36:31.297: E/AndroidRuntime(513): at dalvik.system.NativeStart.main(Native Method)
 
이죠 (420 포인트) 님이 2013년 4월 12일 질문

1개의 답변

0 추천
로그만 보면.. 호출하시려는 showSchedule 클래스를 manifest에 등록하지 않으셧거나

정상적으로 등록하지 않으신것으로 보이구요.

정상적으로 등록했음에도 같은 오류가 발생하시면 댓글 달아주세요,,
익명사용자 님이 2013년 4월 12일 답변
manifast에 문제가 있던게 맞네요ㅎㅎ
감사합니다.
...