1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AndroidStudio トーストを使う

Last updated at Posted at 2024-12-09

リストを選択した時にトーストを出す

イメージ

携帯.gif

トースト(Toast)
画面の下側に出てくるこいつ
image.png

レイアウト※リストをタップしてくださいは別にいらない
リスト 作成方法
リスト アイテムの選択
image.png

今回のリストビューのidは
android:id="@+id/testList"としている

インポート

import android.widget.Toast;

MainActivity
public class MainActivity extends AppCompatActivity {
    Toast toast;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //リストをタップした時のイベント
        ListView listview = findViewById(R.id.testList);
        listview.setOnItemClickListener(new ListClickTest());
    }

    private class ListClickTest implements AdapterView.OnItemClickListener{
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long notInUse){
            String item = (String)parent.getItemAtPosition(position);
            item = "選んだアイテム = "+item;
            if(toast != null)toast.cancel();
            toast = Toast.makeText(MainActivity.this,item,Toast.LENGTH_LONG);
            toast.show();
        }
    }
}



ここでToast型のtoastを宣言している。理由はのちほど
image.png

public void onItemClick内のトーストの記述
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long notInUse){
     String item = (String)parent.getItemAtPosition(position);
     item = "選んだアイテム = "+item;
     if(toast != null)toast.cancel();
     toast =Toast.makeText(MainActivity.this,item,Toast.LENGTH_LONG);
     toast.show();
}
  • if(toast != null)toast.cancel();
    これは、次のトースト表示が処理される場合
    前回のトーストの表示をひっこめる用のものです
    ※デフォルトでトーストは時間経過によって引っ込むので
     すでにトーストが表示されている時に
     別のアイテムを選択しトーストを表示させようとすると
     前のトーストが引っ込むまで出てこずストックされるので、
     アイテムを連続して選択するといろいろ都合が悪い
    このtoast.cancel();の処理を入れるため
    Toast toast;の変数宣言をしている

  • Toast.makeText(MainActivity.this,item,Toast.LENGTH_LONG);
    引数1:MainActivity.this
     とりあえずMainActivity.thisを指定しておく
    引数2:item
     トーストに表示させる文字列
     String型の変数をいれるか直接" "で入力
    引数3:Toast.LENGTH_LONG
     LENGTH_ ① この ① にはSHORTかLONGを指定できる
     だいたいはLONGでよいかと
  • toast.show();
    トーストを発生させると思っておいてよい
    型に格納して発動させるか以下の方法でもよい

変数宣言を必要とせずそのままトーストを出す
Toast.makeText(MainActivity.this,item,Toast.LENGTH_LONG).show();

そのままだす方法
long notInUse){
     String item = (String)parent.getItemAtPosition(position);
     item = "選んだアイテム = "+item;
     /*不要になる
     if(toast != null)toast.cancel();
     toast =Toast.makeText(MainActivity.this,item,Toast.LENGTH_LONG);
     toast.show();*/
     Toast.makeText(MainActivity.this,item,Toast.LENGTH_LONG).show();
}

この場合はtoast.cancel();のように
前回のトーストを引っ込めたりすることができない
携帯.gif

※引っ込める方法は別であると思います。
 今の自分には今回の方法以外分かりません

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?