gpt4 book ai didi

android - 构造函数 SimpleCursorAdapter(Context, int, Cursor, String[], int[]) 已弃用

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:46:16 24 4
gpt4 key购买 nike

如何解决这个问题?

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/

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