gpt4 book ai didi

android - API 17 中添加的方法也适用于较低的 API 级别

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:02 26 4
gpt4 key购买 nike

API 17 中引入的 AutoCompleteTextView 的方法 setText(CharSequence text, boolean filter) 似乎也适用于较低的 android 版本。我原以为它会在 2.3 设备中因 NoSuchMethodError 而崩溃,但它工作正常。这不是真正的问题,但我只是想知道它是如何工作的:)

这是我的代码 -

<AutoCompleteTextView
android:id="@+id/autoCompleteTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:textColor="@android:color/black"
android:ems="10"
android:text="AutoCompleteTextView" >

<requestFocus />
</AutoCompleteTextView>

....

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.AutoCompleteTextView;

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
//method introduced in API 17!!
autoCompleteTextView.setText("Example text", false);
}


}

最佳答案

当 Google 说在 API 级别 17 中引入了某些内容时,他们的意思是它公开可用并记录在 API 级别 17 中。

实际的实现可能从 Android 诞生的第一天起就已经存在,但它使用特殊注释或仅通过使用 private 对开发人员隐藏。

编辑:下面是 Gingerbread 源代码中的实际方法签名 + 文档,展示了这种注解的使用

/**
* Like {@link #setText(CharSequence)}, except that it can disable filtering.
*
* @param filter If <code>false</code>, no filtering will be performed
* as a result of this call.
*
* @hide Pending API council approval.
*/
public void setText(CharSequence text, boolean filter)

关于android - API 17 中添加的方法也适用于较低的 API 级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28689810/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com