按钮中的按钮(android.content.Context)无法应用于(Java.lang.Object)

时间:2018-09-29 19:47:18

标签: java android arrays button

我正在尝试动态创建按钮以匹配数据表。我使用此answer作为参考点,但是我不断收到此错误代码:Button (android.content.Context) in Button Cannot be Applied to (Java.lang.Object) 我尝试了多种方法来减轻错误代码,但是我对如何解决它一无所知,我试图将Map设置为一个数组,但这也不起作用。代码已成功计数,并显示了数据,但我无法添加所需的按钮。

 Backendless.Data.of( "Store" ).find( queryBuilder, new AsyncCallback<List<Map>>()
                {
                    @Override
                    public void handleResponse( List<Map> response )
                    {

                       int numBrands = response.size();

                       Button brandButtons[] = new Button[numBrands];

          System.out.println("The Count of Buttons:" + numBrands);

           ArrayList<Brands> productList  = new ArrayList<>();



             Object[] arrayList = {response};
            for(int i = 0; i < brandButtons.length; i++)
                        {

                        Button brans = new Button(productList[i]);

                            brans.setOnClickListener();
                            add(brans);
                            brandButtons[i] = brans;




                            //Object element = thisIsAStringArray[i];
                            System.out.println( "List of Brands" + response );




                        }

                    }

2 个答案:

答案 0 :(得分:1)

您的错误在此处:

Button brans = new Button(productList[i]); // here

Button类期望将 Context 传递给它的构造函数调用,而您传递的是Object type。

像这样使用

Button brans = new Button(context); // here context can be activity or fragment.

//now use this brans object to set property to your programmatically created Button, 
//don't forget to add it to your parent view afterwards

答案 1 :(得分:0)

您可以在Button文档中看到,要创建按钮对象,您需要传递Context对象。在您的代码中,您传递了引起问题的Brands对象。

解决方案是将上下文传递给Button(Context)构造函数。如果您的活动是新的Button(YourActivity.this),则可以使用new Button(getContext())