Операция фрагмента не может быть приведена к приложению. Активность. - PullRequest
1 голос
/ 31 июля 2011

Хорошо, я продолжаю получать эту ошибку, когда я нажимаю кнопку, запускаю другой фрагмент ..

07-30 20:54:05.950: ERROR/AndroidRuntime(7816): Caused by: java.lang.ClassCastException: com.fttech.gameIT.shopping_details_fragment cannot be cast to android.app.Activity

07-30 20: 54: 05.950: ОШИБКА / AndroidRuntime (7816): на android.app.Instrumentation.newActivity (Instrumentation.java:1022) 07-30 20: 54: 05.950: ОШИБКА / AndroidRuntime (7816): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1663)

Вот то, что я пытаюсь сделать, когда кнопка findIt нажата из этого действия ..

  public class shoppingClass extends FragmentActivity{
Button findIT;
EditText game;
String item = null;
WebView browser;
RadioGroup site;
RadioGroup type;
String url;
String console;
shopping_details_fragment shopping;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.shopping);

    findIT = (Button)findViewById(R.id.findIT);
    shop = (EditText)findViewById(R.id.item);
    type = (RadioGroup)findViewById(R.id.console);
    site = (RadioGroup)findViewById(R.id.shopping_group);

    final Intent d = new Intent(this, shopping_details_fragment.class);
    findIT.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            getUserPreference();
            shopping.loadUrl(url);
            startActivity(d);


        }
    });

  }

Я запускаю еще один этот фрагмент в поле зрения ...

public class shopping_details_fragment extends Fragment{

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

    //Return the view for our WebView
    return(inflater.inflate(R.id.browserFrag,container, false));

}

public void loadUrl(String url){
    ((WebView)getView().findViewById(R.id.browser)).loadUrl(url);
}

}

При этом используется браузер, который я настроил в том же XML-файле, в котором настроен первый актив для запуска веб-браузера и поиска URL-адреса во фрагменте, который я установил ..

Он получает браузер в loadUrl () из макета веб-просмотра, который я создал, и раздувает его во фрагмент. Но я продолжаю получать ошибку выше.

1 Ответ

2 голосов
/ 23 августа 2012

Фрагмент и активность напрямую не связаны между собой, вы не можете просто разыграть их между собой. Вместо этого используйте метод getActivity() для фрагмента, чтобы вернуть его активность.

...