<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="20px"
>
<Button android:id="@+id/expandButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" + "
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"
/>
<TextView android:id="@+id/jokeTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16px"
android:singleLine="true"
/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<RadioGroup android:id="@+id/ratingRadioGroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton android:id="@+id/likeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="60px"
android:text="Like"
/>
<RadioButton android:id="@+id/dislikeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="60px"
android:text="Dislike"
/>
</RadioGroup>
</LinearLayout>
</LinearLayout>
I Klasse erweitert Ansicht (Linearlayout)Problem mit einem Knopf
import ...
public class JokeView extends LinearLayout{
private Button m_vwExpandButton;
private RadioButton m_vwLikeButton;
private RadioButton m_vwDislikeButton;
private RadioGroup m_vwLikeGroup;
private TextView m_vwJokeText;
private Joke m_joke;
public static final String EXPAND = " + ";
public static final String COLLAPSE = " - ";
public JokeView(Context context, Joke joke) {
super(context);
LayoutInflater inflater = (LayoutInflater)context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.joke_view, this, true);
m_vwExpandButton=(Button)findViewById(R.id.expandButton);
m_vwLikeButton=(RadioButton)findViewById(R.id.likeButton);
m_vwDislikeButton=(RadioButton)findViewById(R.id.dislikeButton);
m_vwLikeGroup=(RadioGroup)findViewById(R.id.ratingRadioGroup);
m_vwJokeText=(TextView)findViewById(R.id.jokeTextView);
setJoke(joke);
collapseJokeView();
m_vwExpandButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
Log.e("tah", "onClick");
if(m_vwExpandButton.getText().equals(JokeView.EXPAND)){
expandJokeView();
}
else
if(m_vwExpandButton.getText().equals(JokeView.COLLAPSE)){
collapseJokeView();
}
}
});
m_vwLikeGroup.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup rg, int i) {
if(i==1){
m_joke.setRating(Joke.LIKE);
}
else if(i==2){
m_joke.setRating(Joke.DISLIKE);
}
}
});
}
public void setJoke(Joke joke) {
if(joke!=null){
m_joke=joke;
m_vwJokeText.setText(joke.getJoke());
switch(joke.getRating()){
case Joke.LIKE:
m_vwLikeButton.setChecked(true);
break;
case Joke.DISLIKE:
m_vwDislikeButton.setChecked(true);
break;
case Joke.UNRATED:
m_vwLikeGroup.clearCheck();
break;
}
}
}
private void expandJokeView() {
m_vwJokeText.setEllipsize(null);
m_vwJokeText.setSingleLine(false);
m_vwLikeGroup.setVisibility(View.VISIBLE);
m_vwExpandButton.setText(JokeView.COLLAPSE);
this.requestLayout();
}
private void collapseJokeView() {
m_vwJokeText.setSingleLine(true);
m_vwJokeText.setEllipsize(TextUtils.TruncateAt.END);
m_vwLikeGroup.setVisibility(View.GONE);
m_vwExpandButton.setText(JokeView.EXPAND);
this.requestLayout();
}
}
Aber onClick passiert, wenn ich auf den Knopf klicken
benötigen Sie spezifischere – jcollum
Es ist nicht möglich, es sei denn Sie die onClick in der
Was ist das Problem – Falmarri