- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如何解决这个问题?
The constructor SimpleCursorAdapter(Context, int, Cursor, String[], int[]) is deprecated
和
The method managedQuery(Uri, String[], String, String[], String) from the type Activity is deprecated
代码如下:
package com.example.kamusdigital;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity {
private TextView munculTulisan;
private ListView barisanKata;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
munculTulisan = (TextView) findViewById(R.id.tulisanMuncul);
barisanKata = (ListView) findViewById(R.id.barisDemiBaris);
mengaturIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
mengaturIntent(intent);
}
private void mengaturIntent(Intent intent) {
if (Intent.ACTION_VIEW.equals(intent.getAction())) {
Intent agarKataDptDiKlik = new Intent(this, TampilanKata.class);
agarKataDptDiKlik.setData(intent.getData());
startActivity(agarKataDptDiKlik);
finish();
} else if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
hasilPencarian(query);
}
}
private void hasilPencarian(String query) {
Cursor cursor = managedQuery(PenghubungData.CONTENT_URI, null, null,
new String[] {query}, null);
if (cursor == null) {
munculTulisan.setText(getString(R.string.tak_ada_hasil, new Object[] {query}));
} else {
int count = cursor.getCount();
String countString = getResources().getQuantityString(R.plurals.hasil_pencarian,
count, new Object[] {count, query});
munculTulisan.setText(countString);
String[] dari = new String[] { KamusDatabase.KATA,
KamusDatabase.ARTI_NYA };
int[] ke = new int[] { R.id.kolomKata,
R.id.kolomArtinya };
SimpleCursorAdapter letakanKataPadaTempatnya = new SimpleCursorAdapter(this,
R.layout.hasil, cursor, dari, ke);
barisanKata.setAdapter(letakanKataPadaTempatnya);
barisanKata.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent kataDiKlik = new Intent(getApplicationContext(), TampilanKata.class);
Uri data = Uri.withAppendedPath(PenghubungData.CONTENT_URI,
String.valueOf(id));
kataDiKlik.setData(data);
startActivity(kataDiKlik);
}
});
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater perpanjangTampilan = getMenuInflater();
perpanjangTampilan.inflate(R.menu.untuk_menu, menu);
SearchManager mengaturSearch = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView tampilanSearch = (SearchView) menu.findItem(R.id.cari).getActionView();
tampilanSearch.setSearchableInfo(mengaturSearch.getSearchableInfo(getComponentName()));
tampilanSearch.setIconifiedByDefault(false);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.cari:
onSearchRequested();
return true;
default:
return false;
}
}
}
package com.example.kamusdigital;
import android.app.ActionBar;
import android.app.Activity;
import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.SearchView;
import android.widget.TextView;
public class TampilanKata extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.kata);
ActionBar tempatTampilKata = getActionBar();
tempatTampilKata.setDisplayHomeAsUpEnabled(true);
Uri uri = getIntent().getData();
Cursor cursor = managedQuery(uri, null, null, null, null);
if (cursor == null) {
finish();
} else {
cursor.moveToFirst();
TextView kataKata = (TextView) findViewById(R.id.kolomKata);
TextView artinya = (TextView) findViewById(R.id.kolomArtinya);
int indexKata = cursor.getColumnIndexOrThrow(KamusDatabase.KATA);
int indexArtinya = cursor.getColumnIndexOrThrow(KamusDatabase.ARTI_NYA);
kataKata.setText(cursor.getString(indexKata));
artinya.setText(cursor.getString(indexArtinya));
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.untuk_menu, menu);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
SearchManager aturPencarian = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView tampilanPencarian = (SearchView) menu.findItem(R.id.cari).getActionView();
tampilanPencarian.setSearchableInfo(aturPencarian.getSearchableInfo(getComponentName()));
tampilanPencarian.setIconifiedByDefault(false);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.cari:
onSearchRequested();
return true;
case android.R.id.home:
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return false;
}
}
}
最佳答案
请注意,弃用并不适用于所有 SimpleCursorAdapter
,仅适用于其中一个构造函数。
您可以使用 other constructor (如果您正在为 api 级别 >11 开发)
public SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to, int flags)
如果您正在为 < 11 级的 API 开发
If you wish to use the Loader from API 11, you can pull in the compatibility library (see: http://developer.android.com/sdk/compatibility-library.html). This provides a backport that is compatible with API level 4 or higher devices.
还有
managedQuery
方法已弃用,这意味着不应再使用它,并且有可用的更新方法。对此的替换是 getContentResolver().query()
:
cursor = activity.getContentResolver().query(imageUri, proj, null, null, null);
关于android - 构造函数 SimpleCursorAdapter(Context, int, Cursor, String[], int[]) 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20747454/
我已经在网上搜索了几天(实际上是几个晚上 ;),但目前我一直在为我的问题寻找解决方案。基本上我想要的是 SQLite 的 ListView ,带有过滤器和重要的事情:保持列表行结果与 SQLite 行
当我在 Droidio 中输入“SimpleCursorAdapter”时,对于应该添加哪个 SimpleCursorAdapter 类是矛盾的: 我也不知道 - 我应该使用哪一个作为在 ListVi
下面是让我悲伤的代码示例。如果我将 simpleCursorAdapter 放在 textchangedlistener 之外,但不在我不断收到消息中,则 simpleCursorAdapter 可以
我的每一行都有一个 ListView,我有一个 LinearLayout,其中包含一些对象(主要是一些 TextView)。 这个ListView我从光标动态填充它。在这个游标中,我有一个值 true
我正在尝试构建 android 应用程序,它似乎将 Force Close 保持在同一位置 (setListAdapter/SimpleCursorAdapter) 现在不管我做什么。这是 DBAda
我有一个关于 SimpleCursorAdapter 的恼人问题。我的程序有 ListView 和 ListActivity。每行都有自己的布局:
此代码通过显示数据库中的所有数据正常工作,但我在过滤时遇到问题。我尝试了很多代码但没有任何效果,有人可以帮助我吗?谢谢 package com.example.dictionary; imp
我想实现一个自定义的 SimpleCursorAdapter,它只在偶数行上显示背景颜色(在我的例子中是蓝色)。我的实现如下: public class ColoredCursorAdapter ex
我正在使用自定义的 SimpleCursorAdapter。目前,如果在数据库/游标中找不到任何条目,我的列表将保持为空。现在,如果光标/数据库中没有条目,我想在列表中显示一条消息。我该如何处理这个事
我一直在开发 Android 应用程序,我有一个问题 - ListView 使用 SimpleCursorAdapter(此游标从 SQLite 数据库获取信息),但如果我编辑我的数据库,ListVi
我试图在我的类中设置一个“SimpleCursorAdapter”对象变量,以便所有方法都可以访问它,所有这些都是非常标准的东西。目前,我在“OnCreate”方法中遇到错误,显示以下错误: 错误:
我想将一个字符串附加到我从数据库中提取到游标中的 ID。我有一个包含 2 个项目的 ListView,我希望文本写入 Id+"some text"。我使用 SimpleCursorAdapter 和
我有一个用 SimpleCursorAdapter 填充的 ListView。对于我列表中的每一项,我按以下顺序排列:TextView > RatingBar > TextView > ImageVi
我正在开发我的第一个 Android 应用程序,但不知道如何让我的 SimpleCursorAdpater 填充 View 。我传入的游标在其中产生了结果,因此问题一定出在实例化适配器或将其绑定(bi
我正在尝试使用自定义适配器访问列表 Activity 。我已经在不使用任何自定义适配器的情况下直接进行了尝试,它运行良好,但因为我想在 ListView 中添加更多功能,所以我想实现一个自定义适配器。
我正在尝试使用带有 ViewBinder 的 SimpleCursorAdapter 从数据库中获取图像并将其放入我的 ListView 项目 View .这是我的代码: private void s
我正在查看 Android 开发者网站上的记事本教程,发现 SimpleCursorAdaptor 已弃用。 新的构造函数 public SimpleCursorAdapter (Context co
我正在使用已弃用的 SimpleCursorAdapter 将数据从 Cursor 显示到 ListView。我添加了额外的参数 0,它删除了弃用的警告,但我想使用更好的方式来显示数据。我读过一些关于
所以我使用 SimpleCursorAdapter 将 SQLite 中的数据适配到 ListView 中。让我们称这个数据库为 testData。我在 testData 中的一列使用 0 或 1 记
我正在使用一个数据库,从中获取一个游标,然后使用一个 simplecursoradapter 来填充一个 ListView 。我似乎无法弄清楚为什么应用程序在创建新的 simplecursoradap
我是一名优秀的程序员,十分优秀!