Soru & Cevap

Fragment içerisinde findViewById kullanımı ...

20.09.2016 - 11:14

Fragment içerisinde findViewById kullanımı 

Aşağıdaki kodlarda findViewById  kırmızı çıkıyor hata veriyor yardımcı olursanız sevinirim. teşekkürler.

 

import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;


public class CozSorFragment extends Fragment {
    View myView;
    Button alinan_button;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        myView = inflater.inflate(R.layout.cozsor_layaut, container, false);


        alinan_button = (Button) findViewById(R.id.button1);
        alinan_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(CozCikmisSorFragment.this, admin1.class);
                CozCikmisSorFragment.this.startActivity(intent);
                CozCikmisSorFragment.this.finish();
            }
        });
        return myView;
    }
}

 

1,323 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-19298-1459404577.jpg
alper_beyler
21.09.2016 - 09:30

Merhaba, 

Bunlara ek olarak fragment yapısında butona ulaşmaya çalışıyorsan aşağıdaki gibi kullanmalısın :

Button alinan_button = (Button) myView.findViewById(R.id.button1);

 

picture-7541-1521024507.jpg
burhanaras
21.09.2016 - 08:18

Yanlış parametre yollamışsın.  CozCikmisSorFragment.this şeklindeki ifadeleri getActivity() olarak değiştirmen gerekli. Çünkü bu methodlar Context sınıfı içerisinde tanımlıdır ve Fragment, Context'in alt sınıflarından değildir.

Yani:

 Intent intent = new Intent(getActivity(), admin1.class);
               getActivity().startActivity(intent);
                getActivity().finish();

Bu arada sınıf isimleri büyük harfle başlamalı.  "admin1" isimli sınıfın adını değiştir lütfen.