วิธีใช้วิธีขยายภายในแฟรกเมนต์ [ซ้ำกัน]

สวัสดี ฉันกำลังทำงานกับ Android ฉันพยายามขยายเลย์เอาต์ลงในแฟรกเมนต์ แต่มันแสดงข้อผิดพลาดในโค้ด "method getLayoutInflater() is undefed for the class" ฉันจะเข้าถึงเลย์เอาต์ภายในแฟรกเมนต์ได้อย่างไร ??? โปรดช่วยฉันด้วยฉันยังใหม่กับ Android ขอบคุณ

นี่คือรหัสของฉัน

        View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
         listView1.addHeaderView(header); 

person doubter    schedule 25.01.2014    source แหล่งที่มา


คำตอบ (3)


getLayoutInflater() เป็นวิธีการของ Context

ใช้ getActivity().getLayoutInflater()... ใช้ได้หลังจาก onAttach() โทรกลับถูกเรียกใน Fragment

person Gopal Gopi    schedule 25.01.2014

ฉันสมมติว่าคุณกำลังเรียกสิ่งนี้ภายในกิจกรรม ลองทำ

LayoutInflater li = (LayoutInflater) getApplicationContext().getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View header = li.inflate(R.layout.listview_header_row, null);

ในทางกลับกัน หากคุณเรียกสิ่งนี้จากอะแดปเตอร์แบบกำหนดเอง คุณจะต้องส่งผ่านตัวแปร LayoutInflater หรือบริบทไปยังอะแดปเตอร์

อะแดปเตอร์:

class MyCustomAdapter{
LayoutInflater li;
    public MyCustomAdapter (LayoutInflater li) {
        layoutInflater = li;
    }
    //...
}

กิจกรรม:

public class MyActivity extends Activity {
//...
    public void onCreate() {
        MyCustomAdapter adapter = new MyCustomAdapter((LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
        listView.setAdapter(myCustomAdapter);
    }
//...
}
person Kylelem62    schedule 25.01.2014

ลองสิ่งนี้:

View view = LayoutInflater.from(getActivity()).inflate(
                R.layout.your_layout, null);

รหัสเต็ม

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = LayoutInflater.from(getActivity()).inflate(
            R.layout.your_layout, null);
    return view;
}
person Luc    schedule 25.01.2014