我需要通過觸摸按鈕來更改 shapeType。我嘗試了這種方法,但出現(xiàn)錯誤,提示 shapeType 無法轉(zhuǎn)換為布爾值。代碼:public class MainActivity extends AppCompatActivity {private ArFragment arFragment;private enum ShapeType { GIRAFFE, HIPPO, ELEPHANT}private ShapeType shapeType = ShapeType.GIRAFFE;@SuppressLint("ClickableViewAccessibility")@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.fragment); Button giraffe = findViewById(R.id.giraffebutt); Button hippo = findViewById(R.id.hippobutt); Button elephant = findViewById(R.id.elephantbutt); giraffe.setOnTouchListener(view -> shapeType = ShapeType.GIRAFFE); hippo.setOnTouchListener(view ->shapeType = ShapeType.HIPPO); elephant.setOnTouchListener(view ->shapeType = ShapeType.ELEPHANT); }}錯誤:Bad return type in lambda expression: ShapeType cannot be converted to boolean
2 回答

慕少森
TA貢獻2019條經(jīng)驗 獲得超9個贊
您的onTouch()方法現(xiàn)在期望返回一個布爾值,您沒有返回任何東西,如下更改您的 lambda。
giraffe.setOnTouchListener(
(view, motionEvent) -> {
shapeType = ShapeType.GIRAFFE;
return false;
});

守著一只汪
TA貢獻1872條經(jīng)驗 獲得超4個贊
ButtonsetOnTouchListener提供一個Viewand MotionEvent,并期望一個boolean返回類型。
giraffe.setOnTouchListener((view, event) -> {
shapeType = ShapeType.GIRAFFE);
return true; // return true if event is consumed, false otherwise
});
添加回答
舉報
0/150
提交
取消