Comment Faire LinearLayout Cliquable
J'ai un linearlayout comme ce
<LinearLayout
android:id="@+id/optionlist"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/divider"
android:orientation="vertical" >
</LinearLayout>
Je veux ajouter une autre vue xml dans cette mise en page
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/option"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!--
<View
android:layout_width="match_parent"
android:layout_height="0.5dip"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="#2fd275"
/>
-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10dp" >
<ImageView
android:id="@+id/option_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/logout" />
<TextView
android:id="@+id/option_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#000000"
android:visibility="gone" />
<TextView
android:id="@+id/option_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_margin="10dp"
android:text="Signout"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#616161" />
</LinearLayout>
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="0.5dip"
android:background="#d3d3d3" />
</LinearLayout>
via le code
for (int i = 0; i < opt.length; i++) {
View view = inflater.inflate(R.layout.option_item, optionlist,
false);
view.setBackgroundResource(R.drawable.optionlist);
view.setTag(opt_image[i]);
view.setClickable(true);
view.setFocusable(true);
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//ADD your action here
int res = (Integer) v.getTag();
switch (res) {
case R.drawable.logout:
signout();
break;
}
}
});
final TextView tv = (TextView) view.findViewById(R.id.option_name);
final ImageView iv = (ImageView) view
.findViewById(R.id.option_image);
tv.setText(opt[i]);
iv.setImageResource(opt_image[i]);
optionlist.addView(view);
}
Maintenant sur le clic de la mise en page je veux charger ce fichier xml comme ci-dessous...mais je ne suis pas en mesure d'obtenir le fond d'écran chargés sur l'événement click. Veuillez donner des suggestion de ce que je fais mal?
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/holo_green_dark" android:state_focused="true"/>
<item android:drawable="@color/holo_green_dark" android:state_enabled="false" android:state_pressed="true"/>
<item android:drawable="@color/white"/>
</selector>
OriginalL'auteur Jay Dhamsaniya | 2014-12-09
Vous devez vous connecter pour publier un commentaire.
essayer cette.. espérons que cela fonctionne..
il suffit de créer de nouveaux xml et ajouter ce code dans drawable et définir ur linéaire layoyut backgrout comme son nom comme
android:background="@drawable/createdxmlname"
ok.. pls me tél arrière-plan de l'image ou de la couleur?
vérifier mon editted de réponse...
il est de couleur dans mon cas et si je tiens à le réinitialiser pour revenir à la normale lorsque le clic est libéré.
si vous voulez le fond pour avoir une ondulation, et pas besoin d'utiliser l'API de niveau 21, de l'utilisation
android:background="?attr/selectableItemBackground"
au sein de votre linéaire/relative/modèle/vue en XMLOriginalL'auteur M S Gadag
D'abord obtenir l'id de LinearLayout à partir de xml et ensuite effectuer onClickListener sur elle au lieu de la Vue entière
OriginalL'auteur Rahul Patidar
OriginalL'auteur Sanjay Kumar
Créer dans un drawable pressed_layout.xml avec le contenu suivant
Et de la mise en page de l'ajouter en tant que ressource d'arrière-plan:
OriginalL'auteur MSA
mise en page.setclickble="true" dans le fichier XML et
mise en page.setOnLongClickListener(nouveau point de Vue.OnLongClickListener() {
OriginalL'auteur user3694157
Nous pouvons également utiliser onClick dans le XML de mise en page,et d'utiliser cette méthode dans le fichier java,comme si onClick="next",puis dans le fichier java, nous devons utiliser la méthode .
OriginalL'auteur vp Shakya