radiobutton Ereignis verknüpft setVisibility

M

madgnoll

Neues Mitglied
0
Hallo zusammen,

ich versuche gerade durch die Auswahl eines Radiobuttons innerhalb eine RB-Group die Sichtbarkeit eines Bildes zu verändern.
Leider komme ich nicht weiter, obwohl ich schon zwei unterschiedliche Varianten probiert habe. Das Programm lässt sich laden, aber das Bild bleibt leider immer sichtbar.
Kann mir jemand vielleicht einen Tipp geben, was ich falsch mache?

Danke und viele Grüße,
madgnoll

Hier der Code:

Code:
package com.example.rbg_bilder;


import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;


public class MainActivity extends ActionBarActivity {

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


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
   
    public void onCheckedChanged(RadioGroup radioGroup2, int checkedId) {
   if(checkedId == R.id.radio_mittel){
       ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
       imageView1.setVisibility(View.GONE);
   } else {
       ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
       imageView1.setVisibility(ImageView.VISIBLE);
   }
}
     
       
   public void itemClicked(View v) {
   RadioButton radio_klein = (RadioButton) findViewById(R.id.radio_klein);  //v;
       if  (radio_klein.isChecked()){
            
            ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
            imageView1.setVisibility(View.VISIBLE);
            
       } else {
            ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
          imageView1.setVisibility(ImageView.GONE);
        }
    } 
}
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    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="com.example.rbg_bilder.MainActivity" >

    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <RadioButton
            android:id="@+id/radio_gelb"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
      
          
            android:text="gelb" />

        <RadioButton
            android:id="@+id/radio_rot"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="rot" />
        
        <RadioButton
            android:id="@+id/radio_blau"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           
            android:text="blau" />
    </RadioGroup>

    <RadioGroup
        android:id="@+id/radioGroup2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/radioGroup1"
        android:orientation="vertical" >

        <RadioButton
            android:id="@+id/radio_klein"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="18dp"
        
 
            android:text="klein" />

        <RadioButton
            android:id="@+id/radio_mittel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="21dp"
       
            android:text="mittel" />
        
         <RadioButton
            android:id="@+id/radio_groß"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="21dp"
          
            android:text="groß" />
        
    </RadioGroup>

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/radioGroup2"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="58dp"
        android:layout_marginLeft="54dp"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/imageView1"
        android:layout_alignRight="@+id/radioGroup2"
        android:layout_marginBottom="16dp"
        android:layout_marginRight="64dp"
        android:src="@drawable/abc_ic_cab_done_holo_light" />
    
</RelativeLayout>
 
Hallo,
lade die Ui Elemente in der oncreate... Sprich instanziiere sie dort und setze den Listener.
 
Hallo zusammen,

@missspelled: Vielen Dank für Deine Antwort und Hilfe!
Ich habe das Image und den Radiobutton jetzt auch beim oncreate definiert.
Leider funktioniert es immer noch nicht :confused2:

Wo liegt der Fehler?

Danke und beste Grüße,
madgnoll

Code:
package com.example.rbg_bilder;


import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;


public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView Bild = (ImageView) findViewById(R.id.imageView1);
        RadioButton aus = (RadioButton) findViewById(R.id.radio_mittel);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        
         ImageView Bild = (ImageView) findViewById(R.id.imageView1);
         RadioButton aus = (RadioButton) findViewById(R.id.radio_mittel);
        
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
     
   public void onCheckedChanged(RadioGroup radioGroup2, int checkedId) {
         ImageView Bild = (ImageView) findViewById(R.id.imageView1);
        RadioButton aus = (RadioButton) findViewById(R.id.radio_mittel);
         //if(checkedId == R.id.radio_mittel){
        if(aus.isChecked()){
       Bild.setVisibility(View.GONE);
       
   } else {
       Bild.setVisibility(ImageView.VISIBLE);
   }
}
      
   public void itemClicked(View v) {
   RadioButton radio_gelb = (RadioButton) findViewById(R.id.radio_gelb);
   ImageView imageView1 = (ImageView) findViewById(R.id.imageView1); 
   
   if  (radio_gelb.isChecked()){
            imageView1.setVisibility(View.VISIBLE);
            
       } else {       
          imageView1.setVisibility(ImageView.GONE);
        }
    } 
}
 
madgnoll schrieb:
Ich habe das Image und den Radiobutton jetzt auch beim oncreate definiert.
Wenn du es in der onCreate() definiert hast, warum löscht du die dann nicht aus deiner onCheckedChanged()?

Das gleiche würde ich übrigens auch für RadioButton und ImageView in der itemClicked() machen.
 

Ähnliche Themen

M
Antworten
3
Aufrufe
707
swa00
swa00
A
Antworten
2
Aufrufe
864
Arif12
A
S
Antworten
8
Aufrufe
1.543
lordzwieback
lordzwieback
Zurück
Oben Unten