View Full Version : مشکل در اکتیویتی لطفا کمک کنید
mamali_
شنبه 30 مرداد 1395, 15:36 عصر
سلام خدمت اساتید
من دو تا اکتیویتی دارم وقتی روی باتن که در اکتیویتی اول هس کلیک میکنم میخام به اکتیویتی دوم بره ولی فورس کلوز میده اینم ارورش
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=mozhgan.Teset/.MainActivity }
هرچی میگردم به جواب نمیرسم
msroid
شنبه 30 مرداد 1395, 16:03 عصر
سلام
اکتیویتی دوم رو در Manifest معرفی کردین...؟؟
modernserver
شنبه 30 مرداد 1395, 16:13 عصر
لطفا کد رو بزارید
ولی احتمالا همانطور که دوستمون msroid گفتند بخاطر معرفی نکردن اکتیویتی دوم در manifest است
mamali_
شنبه 30 مرداد 1395, 16:19 عصر
سلام
اکتیویتی دوم رو در Manifest معرفی کردین...؟؟
بله معرفی کردم
عکس هارو یادم رفت بذارم ببینید
http://s1.picofile.com/file/8264466818/IMG_20160820_164253.jpg
http://s2.picofile.com/file/8264466968/IMG_20160820_164250.jpg
msroid
شنبه 30 مرداد 1395, 16:26 عصر
توی فایل Manifest قبل از نام اکتیویتی باید یه نقطه بذارین.
android:name=".AddActivity"
به جای استفاده از getApplicationContext هم بهتره از MainActivity.this استفاده کنید.
mamali_
شنبه 30 مرداد 1395, 16:44 عصر
توی فایل Manifest قبل از نام اکتیویتی باید یه نقطه بذارین.
android:name=".AddActivity"
به جای استفاده از getApplicationContext هم بهتره از MainActivity.this استفاده کنید.
نقطه گذاشتم نشد
الان اینجوری شده
http://s2.picofile.com/file/8264469776/IMG_20160820_171215.jpg
میخواید پروژه رو بذارم یه نگاه بندازید؟ اگه زحمتی نیس
msroid
شنبه 30 مرداد 1395, 16:48 عصر
بله مشکلی نیست بذارید
mamali_
شنبه 30 مرداد 1395, 17:03 عصر
بله مشکلی نیست بذارید
اکتیویتی دوم
public class AddActivity extends Activity implements OnClickListener {
EditText etmsg;
DateFormat fmtDateAndTime = DateFormat.getDateTimeInstance();
TextView lblDateAndTime;
Calendar myCalendar = Calendar.getInstance();
DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateLabel();
}
};
TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
myCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
myCalendar.set(Calendar.MINUTE, minute);
updateLabel();
}
};
private void updateLabel() {
lblDateAndTime.setText(fmtDateAndTime.format(myCal endar.getTime()));
}
Button date, time;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_layout);
// TODO Auto-generated method stub
etmsg = (EditText) findViewById(R.id.etmsg);
lblDateAndTime = (TextView) findViewById(R.id.tvdatetime);
date = (Button) findViewById(R.id.btndate);
date.setOnClickListener(this);
time = (Button) findViewById(R.id.btntime);
time.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btndate:
new DatePickerDialog(AddActivity.this, d, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
break;
case R.id.btntime:
new TimePickerDialog(AddActivity.this, t, myCalendar
.get(Calendar.HOUR_OF_DAY), myCalendar
.get(Calendar.MINUTE), true).show();
break;
}
}
}
این main
public class MainActivity extends Activity {
/** Called when the activity is first created. */
Button btnadd;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnadd = (Button) findViewById(R.id.btnjadid);
btnadd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent i = new Intent(MainActivity.this, AddActivity.class);
startActivity(i);
}
});
}
اینم mainfest
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mozhgan.Teset"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".AddActivity"></activity>
</application>
</manifest>
خیلی ممنونم
msroid
شنبه 30 مرداد 1395, 17:16 عصر
این تیکه کد رو جایگزین قسمت مورد نظر در MainActivity کنید و توی LogCat اون پیامی رو که مینویسه بعد اینجا بذارید:
btnadd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
try{
Intent i = new Intent(MainActivity.this, AddActivity.class);
startActivity(i);
}catch(Exception e){Log.i("err", e.getMessage());}
}
});
mamali_
شنبه 30 مرداد 1395, 17:32 عصر
این تیکه کد رو جایگزین قسمت مورد نظر در MainActivity کنید و توی LogCat اون پیامی رو که مینویسه بعد اینجا بذارید:
btnadd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
try{
Intent i = new Intent(MainActivity.this, AddActivity.class);
startActivity(i);
}catch(Exception e){Log.i("err", e.getMessage());}
}
});
انجام دادم عکس رو ببینید
http://s2.picofile.com/file/8264474726/IMG_20160820_180126.jpg
msroid
شنبه 30 مرداد 1395, 17:49 عصر
ببینید باید پیام های LogCat رو فیلتر کنید. اونجایی که نوشته verbose بذارید روی info و در باکس کناریش بنویسید "err" تا فقط پیام های همون قسمتی رو که میخوایم بهمون نشون بده و اضافات رو دیگه نشون نده
mamali_
شنبه 30 مرداد 1395, 17:58 عصر
ببینید باید پیام های LogCat رو فیلتر کنید. اونجایی که نوشته verbose بذارید روی info و در باکس کناریش بنویسید "err" تا فقط پیام های همون قسمتی رو که میخوایم بهمون نشون بده و اضافات رو دیگه نشون نده
بفرمایید
http://s2.picofile.com/file/8264477934/IMG_20160820_182820.jpg
msroid
شنبه 30 مرداد 1395, 18:13 عصر
الان که هیچ اروری نداره...!! هنوزم برنامه داره با ارور اجرا میشه...؟؟ توی این پیام ها هیچ کدوم پیام خطای برنامه شما نیست...!!
دور err حتما دابل کوتیشن رو بذارید
mamali_
یک شنبه 31 مرداد 1395, 00:07 صبح
الان که هیچ اروری نداره...!! هنوزم برنامه داره با ارور اجرا میشه...؟؟ توی این پیام ها هیچ کدوم پیام خطای برنامه شما نیست...!!
دور err حتما دابل کوتیشن رو بذارید
دابل کوتیشن هم گذاشتم هیچ اروری نمیده
اما نمیدونم چرا کار نمیکنه :(
mamali_
یک شنبه 31 مرداد 1395, 12:11 عصر
دوستان کسی نیست بتونه این مشکل منو حل کنه؟ خیلی گشتم به نتیجه نمیرسم
modernserver
یک شنبه 31 مرداد 1395, 12:23 عصر
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent i = new Intent(MainActivity.this, AddActivity.class);
startActivity(i);
فاصله قبل از AddActivity.class رو حذف کنید و تست کنید
CsharpNevisi
یک شنبه 31 مرداد 1395, 12:41 عصر
دوستان کسی نیست بتونه این مشکل منو حل کنه؟ خیلی گشتم به نتیجه نمیرسم
احتمالا به اکتیویتی دوم میره و در اکتیویتی دوم کرش میکنه .. ظاهرا مشکلی تو استارت اکتیویتی دوم نیست ...
توی متد OnCreate اکتیویتی دوم همین Try , Catch رو بزارید و لاگ کت رو نگاه کنید
mamali_
یک شنبه 31 مرداد 1395, 13:02 عصر
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent i = new Intent(MainActivity.this, AddActivity.class);
startActivity(i);
فاصله قبل از AddActivity.class رو حذف کنید و تست کنید
اون فاصله حذف نمیشه سیو ک میکنم دوباره میاد
mamali_
یک شنبه 31 مرداد 1395, 13:05 عصر
احتمالا به اکتیویتی دوم میره و در اکتیویتی دوم کرش میکنه .. ظاهرا مشکلی تو استارت اکتیویتی دوم نیست ...
توی متد OnCreate اکتیویتی دوم همین Try , Catch رو بزارید و لاگ کت رو نگاه کنید
این راه هم متاسفانه جواب نمیده
CsharpNevisi
یک شنبه 31 مرداد 1395, 13:11 عصر
تو اکتیویتی دوم
implements OnClickListener {
رو بردار .. ببین همچنان مشکل هست .. !!!
mamali_
یک شنبه 31 مرداد 1395, 13:50 عصر
تو اکتیویتی دوم
implements OnClickListener {
رو بردار .. ببین همچنان مشکل هست .. !!!
اینم جواب نداد
CsharpNevisi
یک شنبه 31 مرداد 1395, 14:10 عصر
ببین میخوایی یه اکتیویتی ساده مثل اکتیویتی یک درست کن بدون هیچ کد اضافه ای .. بعد اونو باز کن ببین باز میشه ... من بیشتر نظرم اینه که کدهات تو اکتیویتی دوم مشکل داره .. یه اکتیوی جدید بدون هیچ کد اضافه بساز و فقط بهش لیوت بده ببین نشون میده ... تو منیفست قبل اسمش یه نقطه بزار و اینطوری نمایشش بده :
Manifest :
android:name=".TestActivity"
کد نمایش :
Intent intent = new Intent(MainActivity.this, TestActivity.class);
startActivity(intent);
اگه این کرش نکنه یعنی اکتیویتی دومت مشکل داره
mamali_
یک شنبه 31 مرداد 1395, 14:20 عصر
دوستان مشکل حل شد مثل اینکه نحوه ایجاد کردن اکتیویتی دوم اشتباه بود
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.