当我让Android Studio生成覆盖方法时,它将生成带有奇怪参数名称的方法。
例如根据文档onCheckedChanged应该如下所示:
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){}
但我得到了
public void onCheckedChanged(CompoundButton compoundButton, boolean b){}
我在DatePickerDialog中的或onDateSet:
onDateSet(DatePicker datePicker, int i, int i1, int i2)
而不是
onDateSet(DatePicker view, int year, int month, int dayOfMonth)
我在项目中设置了Android SDK,并安装了Sources for Android 27。
有什么想法吗?
由于
答案 0 :(得分:12)
它与add_action('woocommerce_order_status_changed', 'wc_order_uppdate_to_cancelled_status', 20, 4 );
function wc_order_uppdate_to_cancelled_status( $order_id, $old_status, $new_status, $order ){
// Targetting "processing" and "completed" orders status.
if ( in_array( $new_status, array('processing', 'completed') ) ) {
// Get the user ID
$user_id = $order->get_customer_id();
$product_ids = wpprolister_array_intersect($user_id); // <== Changes in this function will be needed
$matching_orders_ids = get_order_ids_from_bought_items( $product_ids, $user_id );
$orders_to_be_cancelled = array_pop( $orders_to_remove );
foreach ( array_pop( $matching_orders_ids ) as $cancelled_order_id ) {
$cancelled_order = wc_get_order( $cancelled_order_id );
$$cancelled_order->update_status('cancelled', 'As you have brought new package this package has been cancelled');
}
}
}
文件中定义的compileSdkVersion
有关。您应为用作build.gradle
的API安装Sources for Android SDK
。因此,请尝试在SDK Manager中安装等于compileSdkVersion
的源代码版本。
我已经在compileSdkVersion
文件中设置了compileSdkVersion 28
。这是在安装源版本28之前和之后的结果(注意:此后您应该重新启动AndroidStudio):
之前:
build.gradle
之后:
val textWatcher = object: TextWatcher {
override fun afterTextChanged(p0: Editable?) {
}
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
}
关于 AppCompat-v28 库(例如val textWatcher = object: TextWatcher {
override fun afterTextChanged(s: Editable?) {
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
}
类)的问题来自其RecyclerView
工件。如果使用版本27.1.1库,该问题将消失。使用什么版本的28都无关紧要(例如28.0.0、28.0.0-alpha1、28.0.0-alpha3、28.0.0-rc1、28.0.0-rc2等)版本28发行版中,模糊了抽象方法的参数名称。
aar
因此,似乎没有办法解决,除非在下一个发行版中将其修复。
答案 1 :(得分:1)
正如造影学家所说,这是因为您尚未安装正在使用的compileSdk
的源。
要安装源,请按照以下步骤操作:
检查项目的compileSdk版本。(来自应用程序级别build.gradle
文件)。如您在下图中所看到的,我的compileSdk版本是26。因此,我必须安装平台26的源代码。
2。
转到sdk管理器,如果未选中,请在“ SDK平台”选项卡中选中show package details
选项。然后安装您的compileSdk版本的源代码(在我的情况下是26)。而已。现在,您将获得适当的参数名称。
答案 2 :(得分:0)
参数名称可以是任何名称,不会影响代码。您可以将它们替换为所需的任何名称。
android studio的+1应当实现适当的变量名称,以便我们无需了解文档即可大致了解该变量的用途。
到目前为止,我建议您参考所使用功能的文档。只是忽略变量名。 ...较小的名称可以帮助减小代码大小,并且在某些情况下,只要清楚说明了变量的用途,就可以提高可读性。