Android Studio : How to get xml Strings within a BaseAdapter

วันนี้เราจะมาพูดถึงการเรียกใช้ตัวแปรใน XML Strings โดยเรียกจาก public class แบบ BaseAdapter ซึ่งปกติจะไม่สามารถเรียกใช้ตัวแปรจาก XML Strings ตรงๆได้

แต่เรามีวิธีเรียกใช้อ้อมนิดนึง โดยการเพิ่ม Context parameter ใน public class แล้วส่งค่าเข้ามาจาก Activity ที่เรียกใช้ class BaseAdapter ก่อน จากนั้นค่อยใช้ Context ที่ส่งเข้ามาเรียกตัวแปรใน XML Strings อีกที ดังตัวอย่าง

Original public class TestAdapter extends BaseAdapter {
…public TestAdapter(int imgsize)
{
this.imagesize=imgsize;
}
}
New public class TestAdapter extends BaseAdapter {

// add context variable
private Context context;
// add context variable in public
public TestAdapter(int imgsize,Context c)
{
// get context value
this.context=c;
this.imagesize=imgsize;
}

}

จากนั้นไปยัง Activity ที่มีการเรียกใช้ BaseAdapter ดังตัวอย่าง

Original myadapter=new TestAdapter(imgSize);
New myadapter=new TestAdapter(imgSize,this.getContext());

คราวนี้กลับไปที่ class BaseAdapter เราจะเรียกใช้ตัวแปรจาก XML Strings ยังไง

public class TestAdapter extends BaseAdapter {

private Context context;

public TestAdapter(int imgsize,Context c)
{
// get context value
this.context=c;

this.imagesize=imgsize;
}

@Override
public View getView (…) {

String ImgName=context.getResources().getString(R.string.imgname);

}
}

คราวนี้เราก็สามารถเรียกใช้ตัวแปรใน XML ได้ละ

You may also like...