2017-10-03 4 views
0

** Je fais une application et je ne peux pas voir un bouton que j'ai créé (c'est quand l'application fonctionne sur mon téléphone), mais si je l'exécute sur l'émulateur je peux voir tout - le bouton que je ne peux pas voir sur mon téléphone est le bouton cliqué (son identifiant est "startBtn"). **Impossible de voir tous mes boutons sur un téléphone

Here is my layout : 
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:background="#798" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="unleashed.myprefs.MainActivity"> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="match_parent" 
     android:layout_height="90dp" 
     android:text="hello" 
     android:background="#ff14" 
     /> 

    <Button 
     android:id="@+id/startBtn" 
     android:text="start" 
     android:layout_below="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:onClick="addOne" 
     /> 

    <Button 
     android:id="@+id/resetBtn" 
     android:text="restart" 
     android:layout_below="@+id/textView" 
     android:layout_alignParentRight="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:onClick="restart" 
    /> 
</RelativeLayout> 

Et ceci est mon activité principale

package unleashed.myprefs; 

import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity { 
    Button restartNums; 
    SharedPreferences prefs; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     prefs = getSharedPreferences("main", MODE_PRIVATE); 
    } 
     private int getNum(){ 
     return prefs.getInt("num",1); 
    } 

    private void setNum(int num){ // put the number into my shared preference 
     prefs.edit().putInt("num", num).apply(); 
    } 

    public void addOne(View v) { //adding number to the starting button 
     int num = getNum(); 
     ((Button)v).setText("Clicked " + num); 
     setNum(num + 1); 
    } 




    public void restart(View v){ 
     restartNums = (Button) findViewById(R.id.startBtn); 
     prefs.edit().remove("num").apply(); 
     restartNums.callOnClick(); 
    } 
    } 

J'apprécierai toute aide.

+0

utiliser cet attribut sur restartbtn ** android: layout_alignParentEnd = "true" ** –

+0

Essayez de changer la hauteur de l'affichage de texte à wrap_content – Bhupendra

Répondre

0
  1. AlignParentEnd doit être utilisé dans bouton RESET. (Je ne sais pas)

  2. (Alternative) Si vous essayez d'avoir deux boutons dans la même ligne, vous pouvez essayer cette disposition .. `

    <TextView 
        android:id="@+id/textView" 
        android:layout_width="match_parent" 
        android:layout_height="90dp" 
        android:text="hello" 
        android:background="#ff14" 
        /> 
    <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation = "horizontal" 
        android:weightsum="2" 
        android:layout_below="@+id/textView"> 
    
    <Button 
        android:id="@+id/startBtn" 
        android:text="start" 
        android:layout_width="0dp" 
        android:layout_weight="1" 
        android:layout_height="wrap_content" 
        android:onClick="addOne" 
        /> 
    
    <Button 
        android:id="@+id/resetBtn" 
        android:text="restart" 
        android:layout_width="0dp" 
        android:layout_weight="1" 
        android:layout_height="wrap_content" 
        android:onClick="restart"/> 
    

    `

+0

merci, linearlayout vraiment résolu pour moi, mon problème était que mon téléphone était en hébreu apparemment quand le système entier est changé de RTL/LTR il affecte les dispositions. –

+0

@TamirAbutbul Glad cela a aidé. –