单选按钮onclick更改android中的视图

时间:2013-10-25 12:18:34

标签: android image

我有两个单选按钮,即每天一次。当我点击一次它将加载一个图像,当我点击另一个按钮时,它将显示另一个静态图像。它都工作正常。我通过获取单选按钮的ID并设置后台资源来设计带有图像加载的单选按钮。但现在我对如何使用编辑文本和按钮字段配置图像感到困惑。任何人都可以帮我完成这项任务吗?

public void onCheckedChanged(RadioGroup group, int checkedId) {

        if (checkedId == R.id.once) {
              int imageId = (Integer) once.getTag();

                imgview.setBackgroundResource(imageId);

        } else if (checkedId == R.id.daily) {
             int imageId = (Integer) daily.getTag();

                imgview.setBackgroundResource(imageId);

        } 
    } 

这是我的代码。现在我的要求是要访问单击单选按钮时加载的图像中的edittext字段和按钮字段。

3 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解你的问题。 您想显示/隐藏文本视图和按钮而不是图像?

如果是这样,只需创建一个包含textview和按钮的LinearLayout,然后设置属性

android:visibility="gone"
在LinearLayout标记中。

然后通过代码,您可以使用以下方式设置其可见性:

LinearLayout ll=(LinearLayout)findViewById(R.id.linearlayoutid);
ll.setVisibility(View.VISIBLE / View.GONE)

如果这不能解答您的问题,请提供更多详细信息

答案 1 :(得分:0)

如果您有ids,请尝试使用

public void onCheckedChanged(RadioGroup group, int checkedId) {

    if (checkedId == R.id.once) {
          int imageId = (Integer) once.getTag();

            imgview.setBackgroundResource(imageId);
            EditText et = (EditText) imgview.findViewById(R.id.textFieldId);
            Button btn = (Button) imgview.findViewById(R.id.buttonId);

    } else if (checkedId == R.id.daily) {
         int imageId = (Integer) daily.getTag();

            imgview.setBackgroundResource(imageId);
            EditText et = (EditText) imgview.findViewById(R.id.textFieldId);
            Button btn = (Button) imgview.findViewById(R.id.buttonId);
    } 
} 

否则你可以使用

EditText et = (EditText) imgview.getChildAt(0);
Button btn = (Button) = (Button ) imgview.getChildAt(1);

如果您没有ID,请注意您创建视图的顺序

如何修改线性布局背景

根据您的需要,将其放入onCheckedChanged,if或else块中:

LinearLayout ll=(LinearLayout)findViewById(R.id.linearlayoutid);
ll.setVisibility(View.VISIBLE/View.GONE);
ll.setBackgroundResource(imageId);

答案 2 :(得分:0)

您可以使用以下适合我的代码:

// declare your vars 
ImageView imgView;
Bitmap bitmap1,bitmap2;

// in your constructor do the following……
// load your bitmaps here
bitmap1 =  BitmapFactory.decodeResource(getResources(),R.drawable.bitmap1);
bitmap2 =  BitmapFactory.decodeResource(getResources(),R.drawable.bitmap2);

// init your image view
showImageView = new Imageview(getContext());


// AND IN YOUR LISTENER 
public void onCheckedChanged(RadioGroup group, int checkId){
    if(checkedId == R.id.once){
        imgView.setImageBitmap(bitmap1);
    }else if(checkedId == R.id.daily){
        imgView.setImageDrawable(bitmap2);
    }
}