user8322851
user8322851

Reputation: 23

Showing Toast in View method with ListAdapter

I make a list view with Adapter and and I have a toggle button that i hope can showing a toast, but it didn't work...

this is my codes in AppCompactActivity

 protected void onCreate(Bundle savedInstanceStated){
    super.onCreate(savedInstanceStated);
    setContentView(R.layout.list_activity);

    QuestionsListAdapter q = new QuestionsListAdapter(this, questions, picture);
    list = (ListView) findViewById(R.id.list);
    list.setAdapter(q);

}

And this is getView function in my ListAdapter

public View getView(int position,View view,ViewGroup parent) {
    LayoutInflater inflater=context.getLayoutInflater();
    final View rowView=inflater.inflate(R.layout.pictures_question, null,true);

    ImageView pic = (ImageView) rowView.findViewById(R.id.q_picture);
    question = (TextView) rowView.findViewById(R.id.txt_q_question);
    btnPlayer = (ToggleButton) rowView.findViewById(R.id.btn_q_player);

    question.setText(questions[position]);
    pic.setImageResource(picture[position]);

    teks  = question.getText().toString();

    btnPlayer.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (btnPlayer.isChecked()){
                Toast.makeText(context.getApplicationContext(), teks + " ON", Toast.LENGTH_SHORT);
            } else if (!btnPlayer.isChecked()){
                Toast.makeText(context.getApplicationContext(), teks + " OFF", Toast.LENGTH_SHORT);
            }
        }
    });

    return rowView;

};

So, I hope someone can resolve this problem

Upvotes: 0

Views: 310

Answers (2)

Phạm Đông
Phạm Đông

Reputation: 11

full answer. Sorry for my bad english.

   public View getView(int position,View view,ViewGroup parent) {
    LayoutInflater inflater=context.getLayoutInflater();
    final View rowView=inflater.inflate(R.layout.pictures_question, null,true);

    ImageView pic = (ImageView) rowView.findViewById(R.id.q_picture);
    question = (TextView) rowView.findViewById(R.id.txt_q_question);
    btnPlayer = (ToggleButton) rowView.findViewById(R.id.btn_q_player);
    question.setText(questions[position]);
    pic.setImageResource(picture[position]);
    btnPlayer.setTag(position);

    btnPlayer.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int positionItem = (int) v.getTag();
            if (((ToggleButton) v).isChecked()){
                Toast.makeText(context.getApplicationContext(), questions[positionItem] + " ON", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(context.getApplicationContext(), questions[positionItem] + " OFF", Toast.LENGTH_SHORT).show();
            }
        }
    });

    return rowView;

};

Upvotes: 0

Goku
Goku

Reputation: 9692

You forgot to add show() method in your Toast

show()

void show () You can display the toast notification with show()

Try this

 btnPlayer.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (btnPlayer.isChecked()){
                Toast.makeText(context.getApplicationContext(), teks + " ON", Toast.LENGTH_SHORT).show();
            } else if (!btnPlayer.isChecked()){
                Toast.makeText(context.getApplicationContext(), teks + " OFF", Toast.LENGTH_SHORT).show();
            }
        }
    });

Upvotes: 2

Related Questions