动态单选按钮单选组和视图不起作用

Posted

技术标签:

【中文标题】动态单选按钮单选组和视图不起作用【英文标题】:dynamic radio buttons radio group and views are not working 【发布时间】:2014-09-01 05:31:49 【问题描述】:

我想从数据库中动态创建单选按钮,我已经浏览过此问题但无法正常工作。当我调用该函数以从数据库中获取值并传递应用程序上下文的值时,该函数被调用,调用函数或返回值没有错误,但是当视图返回线性布局时,它显示最初创建的空白 xml。我需要帮助来展示这些价值观。提前致谢。 这是代码:

protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_result);
    StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);

    dbcon=DBConnection.instance(this);
    dbcon.connect("ip:1433", "pas", "login", "db");
    Context cntxt=getApplicationContext();

    try 

        Thread.sleep(10);

        String city=getIntent().getExtras().getString("city");
        String choice=getIntent().getExtras().getString("choice");

        LinearLayout ll=new LinearLayout(cntxt);
        ll.setOrientation(LinearLayout.VERTICAL);
        ImageView iv=new ImageView(cntxt);
        RadioGroup.LayoutParams prams=new RadioGroup.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
        prams.setMargins(0, 2, 0, 2);


        RadioGroup rg=(RadioGroup)findViewById(R.id.RRG);

        ll=dbcon.GetResultList(rg,choice,city,iv,cntxt,ll);

        ((ViewGroup)findViewById(R.id.RRG)).addView(ll);



     catch (InterruptedException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
    

这是我从活动中调用的函数:

@SuppressLint("NewApi")
public LinearLayout GetResultList(RadioGroup rg,String choice,String city,ImageView iv,Context context, LinearLayout ll) 
    // TODO Auto-generated method stub

    if(conn==null)

    
    try
        RadioButton rb;
        rg.setBackgroundColor(Color.LTGRAY);

            Statement st=conn.createStatement();
            ResultSet rs=st.executeQuery("select * from AM_NATIONAL where ca_city="+city+ "order by cvg_count");

            while (rs.next())
                rb=new RadioButton(context);
                rb.setId(rs.getInt(1));
                rb.setText(rs.getString(2)+"\n");
                rb.setText(rs.getString(3)+"\n");
                rb.setText(rs.getInt(8));

                byte[] photo=rs.getBytes(4);
                Bitmap bitmap;
                bitmap=BitmapFactory.decodeByteArray(photo, 0, photo.length);
                iv.setImageBitmap(bitmap);

                rb.setEnabled(false);
                rg.addView(iv);
                rg.addView(rb);
                ll.addView(rg);

            
            rs.close();
            st.close();
        
        catch(SQLException e)

        
    return ll;


这是我用于此的 xml 文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_
     android:layout_
     android:paddingBottom="@dimen/activity_vertical_margin"
     android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
     android:paddingTop="@dimen/activity_vertical_margin"
     tools:context=".ResultActivity" >

     <ScrollView
         android:id="@+id/scrollView1"
         android:layout_
         android:layout_
         android:layout_below="@+id/imageView1"
         android:layout_alignParentLeft="true" >

         <LinearLayout
             android:layout_
             android:layout_
             android:orientation="vertical" >

             <RadioGroup 
                 android:id="@id/RRG"
                 android:layout_
                 android:layout_ >

             </RadioGroup>

         </LinearLayout>
     </ScrollView>


</RelativeLayout>

【问题讨论】:

为什么要在 Radio 组中添加 imageview? 因为我想用单选按钮显示数据库中的图像 但问题不存在问题是线性布局返回它是空白的 调试并检查你得到的实际错误在哪里 感谢您的帮助 @RohanPawar rs 是空的,因为意图呼叫城市时出现错误。再次感谢:) 【参考方案1】:

断点上线ResultSet rs=st.executeQuery 检查您的 rs 在调试模式下是否为空,如果 rs 将为空,则将默认视图添加到布局,因此它不会返回空布局

【讨论】:

以上是关于动态单选按钮单选组和视图不起作用的主要内容,如果未能解决你的问题,请参考以下文章

动态单选按钮值不起作用[重复]

Razor 单选按钮不起作用(ASP.NET MVC)

UITableview 内的单选按钮不起作用

单选按钮在 jquery innerhtml 中不起作用

Twitter引导单选按钮不起作用

单选按钮“选中”属性不起作用