๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
studies/Mobile Application

ViewHolder class์—์„œ Toast ๋„์šฐ๊ธฐ, ์•ˆ๋จ ํ•ด๊ฒฐํ•˜๊ธฐ / Android Java

by Vada Kim 2020. 10. 26.
728x90
๋ฐ˜์‘ํ˜•
Toast.makeText(context, String, int).show();

 

 ์ฒซ๋ฒˆ์งธ context๊ฐ€ ์ œ๋Œ€๋กœ ๋จน์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๋‹ค๋ฅธ Activity ํด๋ž˜์Šค์—์„  getApplicationContext()๋‚˜ this ๋“ฑ์ด ๋จน๋Š”๋ฐ ์ด์ƒํ•˜๊ฒŒ ViewHolder ํด๋ž˜์Šค์—์„  ๋˜์ง€ ์•Š๋”๋ผ. ์ด ํด๋ž˜์Šค๋„ Activity ํด๋ž˜์Šค ํ•˜์œ„์— ์œ„์น˜ํ•˜๋Š”๋ฐ.

 

 

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๋‘๊ฐ€์ง€๋ฅผ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

 

 

 

1)

 

์ด ํ† ์ŠคํŠธ๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ์ค„์€ ์ •ํ™•ํžˆ ViewHolder ์•ˆ์˜ setOnClickListener ๋ฉ”์„œ๋“œ์— ์œ„์น˜ํ•œ๋‹ค.

public class ViewHolder extends RecyclerView.ViewHolder{
    private TextView title, date;
        public ViewHolder(@NonNull final View itemView){
            super(itemView);
            title = itemView.findViewById(R.id.listtitle);
            date = itemView.findViewById(R.id.listdate);
            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    int pos = getAdapterPosition();
                    if(pos != RecyclerView.NO_POSITION){
                        Toast.makeText(view.getContext(), "pos", Toast.LENGTH_SHORT).show();
                    }
                }
        });
    }
}โ€‹

 

 

์ด ๋ฉ”์„œ๋“œ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ view๋ฅผ ๊ฐ–๋Š”๋‹ค. ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ์™€ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” Toast์˜ context๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ๊ฒƒ์ด๋‹ค. view ์ธ์ž๋กœ๋ถ€ํ„ฐ context๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค.

 

view.getContext() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ์ž‘๋™ํ•œ๋‹ค.

 

 

 

 

2)

Toast๊ฐ€ ๋„์›Œ์งˆ xml์™€ ์—ฐ๊ฒฐ๋œ Activity์—์„œ context๋ฅผ static ๋ณ€์ˆ˜๋กœ ๋‹ด์•„๋‘” ํ›„,

public static Context mContext;
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_viewnote);
        mContext = this;
        ..//์ดํ•˜์ƒ๋žต

 

์ด Context๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

Toast.makeText(viewmemoActivity.mContext, "pos", Toast.LENGTH_SHORT).show();
728x90
๋ฐ˜์‘ํ˜•