ورود

View Full Version : خطا در اجرای اینترفیس



samiasoft
چهارشنبه 21 شهریور 1397, 23:57 عصر
سلام دوستان

فرض کنید یک کلاس دارید بدین صورت که از اکتیویتی اکستند شده است...وقتی که تابع start را در ماین اکتیویتی اجرا میکنم با خطای زیر روبرو میشوم :


Attempt to invoke interface method ListnerLogout.logout_perform() on a null object

قبلا در کلاسی که از فرگمنت اکستند شده بود به همین صورت عمل میکردم ولی الان نمیدانم چرا در این کلاس که از اکتیوتی اکستند شده با خطا روبرو میشوم!!

public class update extends Activity {

Activity activity;


public update(Activity activity) {
this.activity = activity;
}




onListnerLogout onListnerLogout;


public interface onListnerLogout
{
public void logout_perform();
}




public void start(){

onListnerLogout.logout_perform();
}




}




و ماین اکتیوتیتی :

public class MainActivity extends AppCompatActivity implements update.onListnerLogout {

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


update update = new update(this);
update.start();


}



@Override
public void logout_perform() {
Toast.makeText(this,"اجرا شد",Toast.LENGTH_SHORT).show();
}
}

Nevercom
پنج شنبه 22 شهریور 1397, 00:05 صبح
شما تو کدتون هیچ جا آبجکت onListnerLogout رو مقداردهی نکردید و مقدارش null هست.

samiasoft
پنج شنبه 22 شهریور 1397, 00:50 صبح
شما تو کدتون هیچ جا آبجکت onListnerLogout رو مقداردهی نکردید و مقدارش null هست.

حق با شماست


public update(Activity activity) { this.activity = activity;
onListnerLogout=(onListnerLogout)activity;
}
بدین شکل حل شد با تشکر