我在我的布局中使用了RatingBar,就像下面的1星一样 -
<RatingBar
android:id="@+id/ratingBar"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_below="@id/textViewReleaseDate"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:layout_toRightOf="@id/imageViewPoster"
android:numStars="1"
android:stepSize="1.0" />
在我的活动中有setOnTouchListener,如下所示 -
ratingBar.setOnTouchListener(new View.OnTouchListener() {
int ratingAtActionDown;
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN)
ratingAtActionDown = (int) ratingBar.getRating();
else if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
ratingBar.setRating(ratingAtActionDown == 0 ? 1 : 0);
}
return true;
}
});
对于上面的代码片段,我收到了此警告 -
自定义视图'RatingBar'已调用setOnTouchListener,但未覆盖performClick
在 Android Studio 2.3.3 ratingBar.setOnTouchListener未生成警告但在升级到 Android Studio 3.0稳定后,它开始警告。
如何摆脱警告?
答案 0 :(得分:2)
Lint似乎错误地认为任何未实现performClick()
方法的视图都是自定义视图。知道了这一点,我们可以猜测受此警告影响的观点实际上是缺少该实现。
现在回答您的问题,如果您希望警告消失,您可能需要扩展您想要设置onTouchListener的视图:
TouchableRatingBar ratingBar = (TouchableRatingBar)(RatingBar)findViewById(R.id.ratingBar);
覆盖<yourcompany.yourproject.TouchableRatingBar
android:id="@+id/ratingBar"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_below="@id/textViewReleaseDate"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:layout_toRightOf="@id/imageViewPoster"
android:numStars="1"
android:stepSize="1.0" />
方法,你应该好好去。
请注意,我使用了AppCompatRatingBar,因为Lint似乎不喜欢这样做。
您可能还需要双重评分栏或在布局中更改其类型。
Double Cast:
$subjects = $this->subject_m->get_subject_call($class);
$csv_array = array();
$csv_array_first_row = array('roll','section','exam type');
foreach ($subjects as $key => $value) {
$csv_array_first_row[] = $value->subject;
}
$csv_array_first_row[] = "total";
$csv_array_first_row[] = "maximum marks";
$csv_array_first_row[] = "grades";
$csv_array_first_row[] = "points";
$csv_array_first_row[] = "rank";
$csv_array[] = $csv_array_first_row;
array_to_csv($csv_array,'ttt.csv');
我不会亲自使用双重演员,但是如果您需要替代简单地更改布局中的类型,它可能会完成任务。
类型更改:
roll section name examtype english maths social science gk total max marks grades points rank