아이템을 클릭할 경우 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)