Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在参数中传递一个空格。在循环中单击_Java_Android_Json_Onclick - Fatal编程技术网

Java 在参数中传递一个空格。在循环中单击

Java 在参数中传递一个空格。在循环中单击,java,android,json,onclick,Java,Android,Json,Onclick,我动态创建视图和按钮, 我想在我的循环中的onclick void中传递一个字符串参数,但始终取最后一个值linkbutton节点 if (type.equals("link") == true ) { LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); if (

我动态创建视图和按钮, 我想在我的循环中的onclick void中传递一个字符串参数,但始终取最后一个值linkbutton节点

if (type.equals("link") == true )
{
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams
                (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

     if (classe.equals("text") ==  true)
     {
         Button txtlink= new Button(getApplicationContext());
         txtlink.setText(value); 
         txtlink.setOnClickListener(new View.OnClickListener() 
         {

                public void onClick(View v) 
                {
                    buttonClick(linkButton);
                }
         });
         ll.addView(txtlink);
     }
    else if(classe.equals("button") ==  true)
     {    

         Button btn_entregistrer = new Button(getApplicationContext());
         btn_entregistrer.setText(value);
         ll.addView(btn_entregistrer);

         btn_entregistrer.setOnClickListener(new View.OnClickListener() 
         {
                    public void onClick(View v) 
                    {
                        buttonClick(linkButton);
            }
         });          
     }   
}

怎么办?

我看到您没有更改linkButton的值。这就是为什么总是得到相同的值的原因

它将始终采用最后一个值,因为您没有在循环中定义和初始化linkButton变量

在click中传递值之前,声明并初始化变量强制AORY

循环内部

String linkButton="value";
 if (type.equals("link") == true )
{
 LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams
            (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);


if (classe.equals("text") ==  true)
 {
     Button txtlink= new Button(getApplicationContext());
     txtlink.setText(value); 
     txtlink.setOnClickListener(new View.OnClickListener() 
     {

            public void onClick(View v) 
            {
                buttonClick(linkButton);
            }
     });
     ll.addView(txtlink);
 }
else if(classe.equals("button") ==  true)
 {    

     Button btn_entregistrer = new Button(getApplicationContext());
     btn_entregistrer.setText(value);
     ll.addView(btn_entregistrer);

     btn_entregistrer.setOnClickListener(new View.OnClickListener() 
     {
                public void onClick(View v) 
                {
                    buttonClick(linkButton);
        }
     });          
 } }  

我看不到任何循环…这是我将变量linkbutton更改为循环内的最后一个字符串的解决方案,然后我将变量声明为循环外