public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner s = new Spinner(this);
RelativeLayout rl = (RelativeLayout)
findViewById(R.id.activity_main);
String ss[] = {"--Select Item--", "Item1", "Item2", "Item3",
"Item4", "Item5"};
ArrayAdapter<String> ad = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, ss);
s.setAdapter(ad);
rl.addView(s);
s.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
TextView t = (TextView) v;
Toast.makeText(MainActivity.this, t.getText().toString(),
Toast.LENGTH_SHORT).show();
return true;
}
});
}
}
私はスピナーの項目を長く押しているときに、コードが上記のように指定されているはずのトーストは表示されません。また、スピナー自体を長押しすると(スピナーのドロップダウンリストの項目ではなく)、アプリがクラッシュしています。どうしてこんなことに?スピナーの項目をクリックして乾杯していない
編集1:ロングトーストを生成する必要がありますスピナーのドロップダウンリストに項目を押すとそれはそう与えていないときに
s.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
TextView t = (TextView) view;
Toast.makeText(MainActivity.this, t.getText().toString(), Toast.LENGTH_SHORT).show();
return true;
}
});
が、代わりにsetOnLongClickListenerのsetOnItemLongClickListenerを使用していますか?
です。トーストメッセージの "Hello Toast"を使用し、t.getText()を使用せず、それが動作するかどうかを確認します。 –
@AaronThompsonはい、何も起こらなかった –