小编era*_*rad的帖子

Android SQLite:尝试重新打开已经关闭的对象

我正在尝试根据ISBN从我的库存表中获取某些图书数据.但是,我收到一个错误:"尝试重新打开已经关闭的对象".只有当我单击一个listView对象,转到另一个屏幕,通过"finish()"返回到此页面,然后尝试单击另一个listView对象时,才会出现该错误.我提出的String searchEntries[] = InventoryAdapter.getInventoryEntriesByISBN(searchQuery, isbn[position]);onClickListener以前的for循环之前onClickListener和现在的作品.

如果我通过"finish()"从另一个活动返回此活动后尝试getInventoryEntriesByISBN,为什么它不起作用?

SearchResultsScreen发生错误:

String searchEntries[] = InventoryAdapter.getInventoryEntriesByISBN(searchQuery, isbn[position]);
Run Code Online (Sandbox Code Playgroud)

并通过扩展,发生在InventoryAdapter:

Cursor cursor = db.rawQuery(query, new String[] {ISBN});
Run Code Online (Sandbox Code Playgroud)

SearchResultsScreen.java

// Set up search array
    for(int i = 0; i < isbn.length; i++)
    {
        searchArray.add(new InventoryItem(isbn[i], InventoryAdapter.getTitleAndAuthorByISBN(isbn[i])));
    }
    Toast.makeText(getApplicationContext(), "searchArray.size()="+searchArray.size(), Toast.LENGTH_LONG).show();

    // add data in custom adapter
    adapter = new CustomAdapter(this, R.layout.list, searchArray);
    ListView dataList = (ListView) findViewById(R.id.list);
    dataList.setAdapter(adapter);

    // On Click ========================================================
    dataList.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, …
Run Code Online (Sandbox Code Playgroud)

android android-cursor android-sqlite

10
推荐指数
2
解决办法
3万
查看次数

如何在不知道分区键值的情况下从 Cosmos DB 中删除对象?

如果我没有分区键值,如何删除文档?

我有id文档和分区键的属性名称(在我的例子中:)type

我试过:

var docLink = UriFactory.CreateDocumentUri(databaseName, collectionName, documentId);
var resp = client.DeleteDocumentAsync(docLink).Result;
Run Code Online (Sandbox Code Playgroud)

有错误: PartitionKey value must be supplied for this operation.

示例文档:

{
   "id": "AB12CD", 
   "type": "Company", 
   "Address": "123 Test Street"
}
Run Code Online (Sandbox Code Playgroud)

我试图获取特定文档 ID 的分区键值

使用 C# 代码...

我试图通过它读取文档id,然后提取该type值,但出现错误:InvalidOperationException: PartitionKey value must be supplied for this operation.使用以下代码。

var response = client.ReadDocumentAsync(UriFactory.CreateDocumentUri(databaseName, collectionName, id)).Result;
Run Code Online (Sandbox Code Playgroud)

我还尝试了跨分区查询:

FeedOptions queryOptions = new FeedOptions { MaxItemCount = 10 };
queryOptions.EnableCrossPartitionQuery = true;
var queryString …
Run Code Online (Sandbox Code Playgroud)

c# azure-cosmosdb

6
推荐指数
2
解决办法
5669
查看次数

Android SQLite通配符

我正在尝试使用通配符元素来搜索我的SQLite表,以查找在特定变量中任何位置具有元素的条目.

public String[] getCheckoutEntry(String title, String ISBN)
{
//Wild card Syntax
String titleWildCard = "%" + title + "%";
String ISBNWildCard = "%" + ISBN + "%";
//Query
String query = "select USER,AUTHOR,DATE,CALL_NUMBER,COUNT from CHECKOUT where TITLE = ? or ISBN = ? ";
String[] selectionArgs = new String[] {titleWildCard, ISBNWildCard};
Cursor cursor = db.rawQuery(query, selectionArgs);
Run Code Online (Sandbox Code Playgroud)

我已经在Stack Overflow上检查了六个答案,并且每个人都建议只在我的变量上附加一个"%",如上所示.当我尝试上面的代码时,我的程序只是解释了titleWildCard,包括%作为搜索查询,并尝试在表中找到%.

如果我取出"%",那么程序运行没有问题,只是它只搜索确切的术语.

sqlite android android-sqlite

3
推荐指数
1
解决办法
1423
查看次数

NSUserDefaults setValue和objectForKey

你能用:

[[NSUserDefaults standardUserDefaults] setValue:objectID forKey:"objectID"]

设置对象NSUserDefaults,然后使用以下方法检索该对象:

objectType *tempObject = [[NSUserDefaults standardUserDefaults] objectForKey:@"objectID"]

所以要澄清,我要问的是,如果我使用setObject,我可以使用valueForKey吗?反之亦然,我可以使用setValue然后使用它来检索它objectForKey吗?

你为什么不能这样做?

如果我正确阅读,setObject/ objectForKey处理NSDictionarysetValue/或valueForKey处理KVC,对吗?

我只是想要更好地了解两者之间的差异.

谢谢.干杯.

key key-value-coding nsuserdefaults ios

3
推荐指数
1
解决办法
2395
查看次数

ListView重复Android

当我从表中获得搜索结果时,结果会显示两次.

结果重复

结果"a/a","aa/aa"和"ab/a"都是正确的,应该在那里.但是,我不希望第三个listview条目中的重复值.

任何想法为什么会这样?

主屏幕

// Set up search array
    for(int i = 0; i < isbn.length; i++)
    {
        searchArray.add(new InventoryItem(isbn[i], InventoryAdapter.getTitleAndAuthorByISBN(isbn[i])));
    }
    Toast.makeText(getApplicationContext(), "searchArray.size()="+searchArray.size(), Toast.LENGTH_LONG).show();

    // add data in custom adapter
    adapter = new CustomAdapter(this, R.layout.list, searchArray);
    ListView dataList = (ListView) findViewById(R.id.list);
    dataList.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

CustomAdapter

public class CustomAdapter extends ArrayAdapter<InventoryItem> {
   Context context;
   int layoutResourceId;
   LinearLayout linearMain;
   ArrayList<InventoryItem> data = new ArrayList<InventoryItem>();

   public CustomAdapter(Context context, int layoutResourceId,
                 ArrayList<InventoryItem> data) {
          super(context, layoutResourceId, data);
          this.layoutResourceId = layoutResourceId;
          this.context = context;
          this.data = …
Run Code Online (Sandbox Code Playgroud)

android android-listview

2
推荐指数
1
解决办法
7420
查看次数