PDA

View Full Version : کمک در رفع این ارور



stranger!!!!
یک شنبه 10 خرداد 1394, 22:54 عصر
سلام تو تکه کد زیر 1 ارور وجو داره راهنمایی کنید


private ArrayList<NavDrawerItem> navDrawerItems;
private NavDrawerListAdapter adapter;

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

Button btn=(Button) findViewById(R.id.button_buy);
btn.setOnClicListener(new OnClickListener() {

@Override
public void onClick(new arg0) {
Intent next= new Intent(MainActivity.this, Buypremium.class );
next.putExtra("btn", 20);
}
});

startActivity(next);




mTitle = mDrawerTitle = getTitle();

// load slide menu items
navMenuTitles = getResources().getStringArray(R.array.nav_drawer_i tems);

اینم قسمت ارور ایکلیپس

Description Resource Path Location Type
Syntax error on token "new", byte expected MainActivity.java /N-----ber/src/com/s-----ger/n----rs line 13 Java Problem


از newارور گرفته مشکل چیه

Raminab
یک شنبه 10 خرداد 1394, 23:16 عصر
سلام
ورودی تابع onClick اشتباس که باید اینجوری باشه

public void onClick(View v) {

stranger!!!!
یک شنبه 10 خرداد 1394, 23:39 عصر
تشکر دوست من مشکل تا اینجا حل شد
اما من کد باتن رو به فرگمنت انتفال دادم اون کد اشتباه بود و ی مشکل دیگه پیدا شده ممنون میشم راهنمایی کنی بازم


package com.stranger.numbers;

import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;

public class PhotosFragment extends Fragment {

private static final Intent next = null;

public PhotosFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.premium_page, container, false);

Button btn=(Button) findViewById(R.id.button_buy);
btn.setOnClickListener(new OnClickListener() {


public void onClick(View v) {
Intent next= new Intent(MainActivity.this, Buypremium.class );
next.putExtra("btn", 20);
}
});
startActivity(next);




return rootView;
}

private Button findViewById(int buttonBuy) {
// TODO Auto-generated method stub
return null;
}
}



اینم پیغام خطا ایکلییپس


Description Resource Path Location Type
No enclosing instance of the type MainActivity is accessible in scope PhotosFragment.java /N----er/src/com/st-------er/n------s line 29 Java Problem


اینم ماوجه شدم که باید از getActivity() . کنار fragment استفاده کنم ممنون میشم راهنمایی کنی و کد کامل بشه

djtrex
دوشنبه 11 خرداد 1394, 00:27 صبح
خط ۲۹ به جای

MainActivity.this
باید

getActivity()
بنویسید.

توی یه کلاس دیگه به this دسترسی ندارید مگه اینکه توی خود کلاس یا inner class باشید.

stranger!!!!
دوشنبه 11 خرداد 1394, 09:50 صبح
کسی میتونه واسم کدها رو فیکس کنه و در مورد اینر کلاس هم توضیح بده؟

djtrex
دوشنبه 11 خرداد 1394, 11:17 صبح
دوست عزیز پست قبلی نوشته بودم به جای


MainActivity.this

بنویسید:


getActivity()


همین:)
---------
در مورد inner class هم مربوط به این سوالتون نیست ولی به کلاس های داخل یه کلاس میگن inner class عملا جز اعضای کلاس حساب میشه اطلاعات بیشتر:
https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html