this ใช้ได้แค่ไหน?
สวัสดีครับ วันนี้เราจะพูดการใช้ this ในส่วนต่างๆของการทำงาน แต่ก่อนจะใช้ this เราจำเป็นต้องมารู้จักกับ Context ซะก่อน คำอธิบายสั้นๆของ Context เป็นตัวเชื่อมระหว่างกับโค้ดกับสิ่งต่างๆในแอปของเรา ในบทความนี้ก็มีตัวอย่างในการใช้ Context ในรูปแบบต่างๆ เช่น เมื่อคลาส MainActivity สืบทอดมาจาก Activity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Toast อยู่นอก setOnClickListener
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this, "", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT).show();
TextView click = (TextView)findViewById(R.id.ClickMe);
click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast อยู่ใน setOnClickListener
Toast.makeText(MainActivity.this, "ClickMe!", Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), "ClickMe!", Toast.LENGTH_LONG).show();
}
});
}
}
จากตัวอย่าง เราจะเห็นได้ว่า Toast ที่อยู่ใน setOnClickListener ไม่สามารถใช้ this ในการเจาะจงตัวแปรได้ เนื่องจาก OnClickListener ไม่ได้สืบทอดมาจาก Activity จึงทำให้ไม่สามารถใช้ this ได้
อีกตัวอย่างนึง เมื่อคลาสของเราสืบทอดมาจาก Fragment เราจะไม่สามารถใช้ this ได้เหมือนตัวอย่างข้างต้นแต่เราสามารถใช้ getContext() ได้แทนครับ สำหรับในบทความนี้ไม่ได้ยกตัวอย่างของ Fragment ไว้ยกตัวอย่างในบทความต่อๆไป วันนี้ก็ขอตัวลาไปก่อนหากเนื้อหามีข้อผิดพลาดประการได้ก็ขออภัยด้วยนะครับ และสามารถสอบถามรายละเอียดเพิ่มเติมสามารถคอมเมนต์ได้ที่โพสต์ด้านล่างนะครับ สวัสดีครับ



ความคิดเห็น
แสดงความคิดเห็น