ورود

View Full Version : خطا در زمانی که می خوام اکتیویتی جدید باز کنم



sadaf_
جمعه 31 خرداد 1392, 16:00 عصر
دوستان لطفا بگید این خطا برای چیه
105914105914

saeidpsl
جمعه 31 خرداد 1392, 16:06 عصر
کدهای برنامت رو نگاه کن یه جاش اشتباه.

sadaf_
جمعه 31 خرداد 1392, 16:11 عصر
از کجا می شه فهمید کجاش اشتباهه؟

saeidpsl
جمعه 31 خرداد 1392, 16:38 عصر
بخش Error Log یا markers view

http://maven.40175.n5.nabble.com/file/n136201/EclipseErrorLog.png

shahin bahari
جمعه 31 خرداد 1392, 16:52 عصر
از توی خطا های داخل logcat میتونید علت کرش کردن برنامه رو متوجه بشید. معمولا عدم مقدار دهی ابجکت ها توی شروع برنامه باعث این مشکل میشه. (البته تنها این نیست اما کسانی که تازه شروع کردند این اشتباه رو معمولا میکنند)

sadaf_
جمعه 31 خرداد 1392, 17:12 عصر
کدها رو می گذارم شاید مشکلم حل بشه
از صبح تا حالا دارم روش کار می کنم:اشتباه:

activityMain.xml

android:onClick="onClick"


activityMain.java

package com.example.sample1;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;


public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void onClick(){
Intent ii = new Intent(MainActivity.this,HelpActivity.class);
startActivity(ii);
}
}



activity2.java

protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.helpactivity);
}
}

rubiks.kde
جمعه 31 خرداد 1392, 17:39 عصر
سلام دوست عزیز من برنامه شما رو اجرا کردم خظایی که میده اینه :

E/AndroidRuntime(488): java.lang.IllegalStateException: Could not find a method onClick(View) in the activity class com.example.saeed.MainActivity for onClick handler on view class android.widget.RelativeLayout

دقیقا زمانی که شما روی اکتیویتی کلیک میکنید این اتفاق می افته اینم به خاطر اینه که اون تابع معرفی شده برای کلیک رو پیدا نمیکنه برای حل این مشکل کد رو به این صورت تغییر بدهید.

public class MainActivity extends Activity implements OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent ii = new Intent(MainActivity.this,HelpActivity.class);
startActivity(ii);
}

}

sadaf_
جمعه 31 خرداد 1392, 18:11 عصر
انجام دادم این خطا را داد
105931

sadaf_
جمعه 31 خرداد 1392, 18:18 عصر
بالاخره حل شد

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void onClick(View v)
{
Intent ii = new Intent(MainActivity.this,HelpActivity.class);
startActivity(ii);
}

}

:لبخند:

می شه یک توضیح بدید View چه نقشی داره؟

rubiks.kde
جمعه 31 خرداد 1392, 18:50 عصر
بالاخره حل شد

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void onClick(View v)
{
Intent ii = new Intent(MainActivity.this,HelpActivity.class);
startActivity(ii);
}

}

:لبخند:

می شه یک توضیح بدید View چه نقشی داره؟

باز هم اگه اجرا کنی خطا میده حتما باید کلاس رو به این صورت تعریف کنی
public class MainActivity extends Activity implements OnClickListener

مشکل شما تنها نوع تعریف تابع نیست بلکه مشکل درست تعریف نشدن خود کلاس هست.

rubiks.kde
جمعه 31 خرداد 1392, 18:53 عصر
در مورد این onClick(View v) تابع هم v در واقع همون View هست که روش کلیک شده.

sadaf_
جمعه 31 خرداد 1392, 21:46 عصر
در مورد این onClick(View v) تابع هم v در واقع همون View هست که روش کلیک شده.
من view را متوجه نشدم
v که همون view هستش