为什么我会收到一个java.lang.IllegalArgumentException:如果在索引1绑定值为null在这种情况下? [英] Why am I getting an java.lang.IllegalArgumentException: the bind value at index 1 is null in this case?

查看:3714
本文介绍了为什么我会收到一个java.lang.IllegalArgumentException:如果在索引1绑定值为null在这种情况下?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道什么是 java.lang.IllegalArgumentException:如果在索引1绑定值为null 手段,是什么原因导致的错误。我我的情况,我仍然无法找到我的情况下,这种错误的原因。

那么,我该怎么打算实现?

我有4个列在我的SQLite数据库表。我想找到每一列的总和,并再次找到这些四个结果的总和。行值的总和是根据由从autoCompleteTextView用户选择的产品名称过滤的

我在哪里得到的错误?

我的堆栈跟踪说我收到错误的符合的光标C = db.query ... 的在下面的code开头。下面code是我的Andr​​oid项目的我的数据库文件的一部分。

 公众诠释addPurchaseQuantity(ItemName字符串){
    SQLiteDatabase DB = helper.getReadableDatabase();
    INT结果为0;
    串选择= VivzHelper.COLUMN_ADD_PURCHASE_ITEM_NAME +=;
    的String [] selectionArgs两个= {}了itemname;
    光标C = db.query(VivzHelper.ADD_PURCHASE_TABLE,
            新的String [] {和(+ VivzHelper.COLUMN_ADD_PURCHASE_ITEM_QUANTITY +)},
            选择,
            selectionArgs两个,
            空值,
            空值,
            空值);
    如果(c.moveToFirst()){
        结果= c.getInt(0);
    }
    c.close();
    返回结果;
}
 

该了itemname从autoCompleteTextView获得基于用户选择

 的String [] autoCompleteName = vivzHelper.getInventoryNameFilterBySupplierName(vivzHelper.getSupplierID(参数1));
    ArrayAdapter<字符串> NameAdapter =新的ArrayAdapter<>(这一点,android.R.layout.simple_list_item_1,autoCompleteName);
    addPurchaseItemName.setThreshold(1); //开始从第一个字符工作
    addPurchaseItemName.setAdapter(NameAdapter);

    addPurchaseItemName.setOnItemClickListener(新AdapterView.OnItemClickListener(){

        公共无效onItemClick(适配器视图<>为arg0,查看ARG1,INT ARG2,长ARG3){
            =了itemname将String.valueOf(arg0.getItemAtPosition(ARG2));
        }
    });
 

我的堆栈跟踪也指向Java活动文件的以下code。

  INT purchaseQty = vivzHelper.addPurchaseQuantity(了itemname);
 

下面是我的堆栈跟踪

  04-21 00:09:58.274 21975-21975 / com.example.bharathduraiswamy.comboedittext E / AndroidRuntime:致命异常:主要
java.lang.RuntimeException的:无法启动的活动ComponentInfo{com.example.bharathduraiswamy.comboedittext/com.example.bharathduraiswamy.comboedittext.AddPurchase}: java.lang.IllegalArgumentException:如果在索引1绑定值为null
        在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2313)
        在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
        在android.app.ActivityThread.access $ 600(ActivityThread.java:156)
        在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344)
        在android.os.Handler.dispatchMessage(Handler.java:99)
        在android.os.Looper.loop(Looper.java:153)
        在android.app.ActivityThread.main(ActivityThread.java:5336)
        在java.lang.reflect.Method.invokeNative(本机方法)
        在java.lang.reflect.Method.invoke(Method.java:511)
        在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:833)
        在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
        在dalvik.system.NativeStart.main(本机方法)
 java.lang.IllegalArgumentException异常:产生的原因在索引1绑定值为null
        在android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:164)
        在android.database.sqlite.SQLiteProgram.bindAllArgsAsStrings(SQLiteProgram.java:200)
        在android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
        在android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
        在android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1161)
        在android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1032)
        在android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1200)
        在com.example.bharathduraiswamy.comboedittext.VivzDatabaseAdapter.addPurchaseQuantity(VivzDatabaseAdapter.java:2011)
        在com.example.bharathduraiswamy.comboedittext.AddPurchase.aggregateQty(AddPurchase.java:531)
        在com.example.bharathduraiswamy.comboedittext.AddPurchase.onCreate(AddPurchase.java:133)
        在android.app.Activity.performCreate(Activity.java:5122)
        在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
        在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2277)
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
        在android.app.ActivityThread.access $ 600(ActivityThread.java:156)
在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344)
在android.os.Handler.dispatchMessage(Handler.java:99)
在android.os.Looper.loop(Looper.java:153)
在android.app.ActivityThread.main(ActivityThread.java:5336)
在java.lang.reflect.Method.invokeNative(本机方法)
在java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:833)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
在dalvik.system.NativeStart.main(本机方法)
 

谁能告诉我,其实我该怎么错了?

更新01:的onCreate()从AddPurchase活动添加

  @覆盖
保护无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.add_purchase);

    //设置工具栏来代替操作栏
    工具栏myToolbar =(工具栏)findViewById(R.id.toolbar_addPurchase);
    setSupportActionBar(myToolbar);
    myToolbar.setNavigationIcon(R.drawable.logo);

    //禁用工具栏标题
    getSupportActionBar()setDisplayShowTitleEnabled(假)。

    //加起来图标设置活动
    getSupportActionBar()setHomeButtonEnabled(真)。
    getSupportActionBar()setDisplayHomeAsUpEnabled(真)。

    共享preferences我的preferences = getShared preferences(sharedSupplierData,Context.MODE_PRIVATE);
    参数1 =我的preferences.getString(sharedSupplierName,默认);
    如果(param1.equals(默认)){
        Message.message(这一点,没有找到数据);
    }

    addPurchaseItemName =(AutoCompleteTextView)findViewById(R.id.addPurchaseProductName);
    addPurchaseItemQty =(EditText上)findViewById(R.id.addPurchaseProductQuantity);
    addPurchaseCostPrice =(EditText上)findViewById(R.id.addPurchaseCostPrice);
    addPurchaseSalePrice =(EditText上)findViewById(R.id.addPurchaseSalePrice);
    指明MyDate =(TextView中)findViewById(R.id.addPurchaseDatum);
    purchaseSum =(TextView中)findViewById(R.id.addPurchaseSum);
    primarySpinner =(微调)findViewById(R.id.toolbar_spinner);
    vivzHelper =新VivzDatabaseAdapter(本);

    showDialogOnButtonClick();
    populateListView();

    的String [] autoCompleteName = vivzHelper.getInventoryNameFilterBySupplierName(vivzHelper.getSupplierID(参数1));
    ArrayAdapter<字符串> NameAdapter =新的ArrayAdapter<>(这一点,android.R.layout.simple_list_item_1,autoCompleteName);
    addPurchaseItemName.setThreshold(1); //开始从第一个字符工作
    addPurchaseItemName.setAdapter(NameAdapter);

    addPurchaseItemName.setOnItemClickListener(新AdapterView.OnItemClickListener(){

        公共无效onItemClick(适配器视图<>为arg0,查看ARG1,INT ARG2,长ARG3){
            =了itemname将String.valueOf(arg0.getItemAtPosition(ARG2));
        }
    });

    Message.message(这一点,(项目名称=+了itemname));

    aggregateQty();

    //初始化适配器
    ArrayAdapter<字符串> toolbar_adapter =新的ArrayAdapter<>(
            对此,android.R.layout.simple_spinner_dropdown_item,primarySpinner_array);
    //提供了资源XML进行降下来布局
    toolbar_adapter.setDropDownViewResource(R.layout.custom_simple_spinner_dropdown_item);
    primarySpinner.setAdapter(toolbar_adapter);

    //设置onItemClick之前默认微调值
    primarySpinner.setSelection(0);
    //初始化OnItemClick监听器微调项目
    primarySpinner.setOnItemSelectedListener(新AdapterView.OnItemSelectedListener(){

        @覆盖
        公共无效onItemSelected(适配器视图<>为arg0,查看ARG1,INT ARG2,长ARG3){
            INT position_toolbar = primarySpinner.getSelectedItemPosition();

            //改变微调TEXTSIZE和文本颜色
            ((TextView的)arg0.getChildAt(0))setTextColor(Color.WHITE);
            ((TextView的)arg0.getChildAt(0))setTextSize(20)。
            //改变微调指针颜色 - 部分有效
            primarySpinner.getBackground()setColorFilter(getResources()的getColor(R.color.White),PorterDuff.Mode.SRC_ATOP。)。

            //使用开关移动到其他活动
            意图int​​ent_spinner;
            开关(ARG2){
                情况1:
                    intent_spinner =新的意图(AddPurchase.this,SupplierDues.class);
                    AddPurchase.this.startActivity(intent_spinner);
                    打破;
                案例2:
                    intent_spinner =新的意图(AddPurchase.this,SupplierReturns.class);
                    AddPurchase.this.startActivity(intent_spinner);
                    打破;
                案例3:
                    intent_spinner =新的意图(AddPurchase.this,SupplierBalanceSheet.class);
                    AddPurchase.this.startActivity(intent_spinner);
                    打破;
                壳体4:
                    intent_spinner =新的意图(AddPurchase.this,AddSupplier.class);
                    AddPurchase.this.startActivity(intent_spinner);
                    打破;
                默认:
                    打破;
            }
            //改变微调指针颜色 - 部分有效
            primarySpinner.getBackground()setColorFilter(getResources()的getColor(R.color.White),PorterDuff.Mode.SRC_ATOP。)。
            //设置onItemClick后默认微调值
            primarySpinner.setSelection(0);
        }

        @覆盖
        公共无效onNothingSelected(适配器视图<>为arg0){
            // TODO自动生成方法存根
        }
    });
}
 

更新02:aggregateQty()的时候,addPurchaseQuantity()被调用

 公共无效aggregateQty(){

    INT purchaseQty = vivzHelper.addPurchaseQuantity(了itemname);
    INT saleQty = vivzHelper.addSaleQuantity(了itemname);
    INT supplierRtnQty = vivzHelper.returnedToSupplierQuantity(了itemname,rtnPrice);
    INT supplierRtnScrapQty = vivzHelper.returnedToSupplierForScrapQuantity(了itemname,rtnPrice);
    INT customerRtnQty = vivzHelper.returnedByCustomerQuantity(了itemname,rtnPrice);

    如果(itemName.length()!= 0){
        availableQuantity =将String.valueOf(purchaseQty  -  saleQty  -  supplierRtnQty  -  supplierRtnScrapQty + customerRtnQty);
        addPurchaseItemQty.setHint(availableQuantity);

        Message.message(这一点,(项目名称=+ +了itemname\ N+
                购买数量=+ purchaseQty +\ N+
                销售量=+ saleQty +\ N+
                供应商退货数量=+ supplierRtnQty +\ N+
                客户退货数量=+ customerRtnQty));

    } 其他 {
        Message.message(这一点,请选择一个项目);
    }
}
 

解决方案

了itemname addPurchaseQuantity()调用,因此为什么当的SQLite试图用它来代替的选择参数(?),您会收到这个异常。

尝试设置了itemname 为已知值并检查结果。

修改

您应该单独测试每一个方法,所以你可以很容易地发现错误或错误。了解申请的单元测试的如测试基础描述

然后,你就会发现,问题被归结为从AutoCompletTextView你可以找到大量的例子在那里(即<一个获取文本值href="http://stackoverflow.com/questions/9854790/how-to-get-string-text-from-autocompletetextview">How从AutoCompleteTextView得到字符串文本?)。

I know what an java.lang.IllegalArgumentException: the bind value at index 1 is null means and what causes the error. I my case I am still unable to find the reason for such an error in my case.

So, what do I intend to achieve?

I have 4 columns in my SQLite database table. I want to find the sum of each column and again find the sum of these four results. The row values for sum is filtered based on the product name chosen by the user from the autoCompleteTextView.

Where am I getting the error?

my stackTrace says I am getting the error in the line beginning with Cursor c = db.query... in the below code. The following code is part of my db file of my android project.

    public int addPurchaseQuantity(String itemName) {
    SQLiteDatabase db = helper.getReadableDatabase();
    int result = 0;
    String selection = VivzHelper.COLUMN_ADD_PURCHASE_ITEM_NAME + " =? ";
    String[] selectionArgs = {itemName};
    Cursor c = db.query(VivzHelper.ADD_PURCHASE_TABLE,
            new String[]{"sum(" + VivzHelper.COLUMN_ADD_PURCHASE_ITEM_QUANTITY + ")"},
            selection,
            selectionArgs,
            null,
            null,
            null);
    if (c.moveToFirst()) {
        result = c.getInt(0);
    }
    c.close();
    return result;
}

The itemName is obtained from the autoCompleteTextView based on user selection.

        String[] autoCompleteName = vivzHelper.getInventoryNameFilterBySupplierName(vivzHelper.getSupplierID(param1));
    ArrayAdapter<String> NameAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, autoCompleteName);
    addPurchaseItemName.setThreshold(1);// starts working from first char
    addPurchaseItemName.setAdapter(NameAdapter);

    addPurchaseItemName.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            itemName = String.valueOf(arg0.getItemAtPosition(arg2));
        }
    });

My stackTrace is also pointing to the following code of the java activity file.

int purchaseQty = vivzHelper.addPurchaseQuantity(itemName);

Here is my stackTrace

04-21 00:09:58.274  21975-21975/com.example.bharathduraiswamy.comboedittext E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.bharathduraiswamy.comboedittext/com.example.bharathduraiswamy.comboedittext.AddPurchase}: java.lang.IllegalArgumentException: the bind value at index 1 is null
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2313)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
        at android.app.ActivityThread.access$600(ActivityThread.java:156)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:153)
        at android.app.ActivityThread.main(ActivityThread.java:5336)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.IllegalArgumentException: the bind value at index 1 is null
        at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:164)
        at android.database.sqlite.SQLiteProgram.bindAllArgsAsStrings(SQLiteProgram.java:200)
        at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
        at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
        at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1161)
        at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1032)
        at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1200)
        at com.example.bharathduraiswamy.comboedittext.VivzDatabaseAdapter.addPurchaseQuantity(VivzDatabaseAdapter.java:2011)
        at com.example.bharathduraiswamy.comboedittext.AddPurchase.aggregateQty(AddPurchase.java:531)
        at com.example.bharathduraiswamy.comboedittext.AddPurchase.onCreate(AddPurchase.java:133)
        at android.app.Activity.performCreate(Activity.java:5122)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2277)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
        at android.app.ActivityThread.access$600(ActivityThread.java:156)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:153)
        at android.app.ActivityThread.main(ActivityThread.java:5336)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
        at dalvik.system.NativeStart.main(Native Method)

Can someone tell me where actually am I going wrong?

Update 01 : onCreate() from AddPurchase activity added

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

    // Set a toolbar to replace the action bar
    Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar_addPurchase);
    setSupportActionBar(myToolbar);
    myToolbar.setNavigationIcon(R.drawable.logo);

    //Disable the Toolbar Title
    getSupportActionBar().setDisplayShowTitleEnabled(false);

    // Adding UP icon for Setting Activity
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    SharedPreferences myPreferences = getSharedPreferences("sharedSupplierData", Context.MODE_PRIVATE);
    param1 = myPreferences.getString("sharedSupplierName", DEFAULT);
    if (param1.equals(DEFAULT)) {
        Message.message(this, "No data was found");
    }

    addPurchaseItemName = (AutoCompleteTextView) findViewById(R.id.addPurchaseProductName);
    addPurchaseItemQty = (EditText) findViewById(R.id.addPurchaseProductQuantity);
    addPurchaseCostPrice = (EditText) findViewById(R.id.addPurchaseCostPrice);
    addPurchaseSalePrice = (EditText) findViewById(R.id.addPurchaseSalePrice);
    myDate = (TextView) findViewById(R.id.addPurchaseDatum);
    purchaseSum = (TextView) findViewById(R.id.addPurchaseSum);
    primarySpinner = (Spinner) findViewById(R.id.toolbar_spinner);
    vivzHelper = new VivzDatabaseAdapter(this);

    showDialogOnButtonClick();
    populateListView();

    String[] autoCompleteName = vivzHelper.getInventoryNameFilterBySupplierName(vivzHelper.getSupplierID(param1));
    ArrayAdapter<String> NameAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, autoCompleteName);
    addPurchaseItemName.setThreshold(1);// starts working from first char
    addPurchaseItemName.setAdapter(NameAdapter);

    addPurchaseItemName.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            itemName = String.valueOf(arg0.getItemAtPosition(arg2));
        }
    });

    Message.message(this, ("Item Name  = " + itemName));

    aggregateQty();

    //Initializing an Adapter
    ArrayAdapter<String> toolbar_adapter = new ArrayAdapter<>(
            this, android.R.layout.simple_spinner_dropdown_item, primarySpinner_array);
    //Providing the Resource xml for Drop down Layout
    toolbar_adapter.setDropDownViewResource(R.layout.custom_simple_spinner_dropdown_item);
    primarySpinner.setAdapter(toolbar_adapter);

    //Setting a default Spinner value before onItemClick
    primarySpinner.setSelection(0);
    //Initializing an OnItemClick Listener for Spinner Item
    primarySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            int position_toolbar = primarySpinner.getSelectedItemPosition();

            //Changing Spinner TextSize and Text Color
            ((TextView) arg0.getChildAt(0)).setTextColor(Color.WHITE);
            ((TextView) arg0.getChildAt(0)).setTextSize(20);
            //Changing Spinner Pointer Color - partially effective
            primarySpinner.getBackground().setColorFilter(getResources().getColor(R.color.White), PorterDuff.Mode.SRC_ATOP);

            //Using Switch to move to other Activities
            Intent intent_spinner;
            switch (arg2) {
                case 1:
                    intent_spinner = new Intent(AddPurchase.this, SupplierDues.class);
                    AddPurchase.this.startActivity(intent_spinner);
                    break;
                case 2:
                    intent_spinner = new Intent(AddPurchase.this, SupplierReturns.class);
                    AddPurchase.this.startActivity(intent_spinner);
                    break;
                case 3:
                    intent_spinner = new Intent(AddPurchase.this, SupplierBalanceSheet.class);
                    AddPurchase.this.startActivity(intent_spinner);
                    break;
                case 4:
                    intent_spinner = new Intent(AddPurchase.this, AddSupplier.class);
                    AddPurchase.this.startActivity(intent_spinner);
                    break;
                default:
                    break;
            }
            //Changing Spinner Pointer Color - partially effective
            primarySpinner.getBackground().setColorFilter(getResources().getColor(R.color.White), PorterDuff.Mode.SRC_ATOP);
            //Setting a default Spinner value after onItemClick
            primarySpinner.setSelection(0);
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
        }
    });
}

Update 02 : aggregateQty() from when the addPurchaseQuantity() is called

    public void aggregateQty() {

    int purchaseQty = vivzHelper.addPurchaseQuantity(itemName);
    int saleQty = vivzHelper.addSaleQuantity(itemName);
    int supplierRtnQty = vivzHelper.returnedToSupplierQuantity(itemName, rtnPrice);
    int supplierRtnScrapQty = vivzHelper.returnedToSupplierForScrapQuantity(itemName, rtnPrice);
    int customerRtnQty = vivzHelper.returnedByCustomerQuantity(itemName, rtnPrice);

    if (itemName.length() != 0) {
        availableQuantity = String.valueOf(purchaseQty - saleQty - supplierRtnQty - supplierRtnScrapQty + customerRtnQty);
        addPurchaseItemQty.setHint(availableQuantity);

        Message.message(this, ("Item Name  = " + itemName + "\n" +
                "Purchase Quantity = " + purchaseQty + "\n" +
                "Sale Quantity = " + saleQty + "\n" +
                "Supplier Return Quantity = " + supplierRtnQty + "\n" +
                "Customer Return Quantity = " + customerRtnQty));

    } else {
        Message.message(this, "Please Select an Item");
    }
}

解决方案

itemName is null in addPurchaseQuantity() invocation and thus why when SQLite tries to use it to replace the selection argument ('?') you receive this exception.

Try setting itemName to a known value and check the results.

EDIT

You should test every method independently so you can easily discover the errors or bugs. Learn to apply unit testing as described in Testing Fundamentals.

Then, you'll discover that the problem is reduced to get the text value from an AutoCompletTextView which you can find plenty of examples out there (i.e. How to get string text from AutoCompleteTextView?).

这篇关于为什么我会收到一个java.lang.IllegalArgumentException:如果在索引1绑定值为null在这种情况下?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆