2015-06-18 2 views
0

Мое представление активности тренировки Android показывает вид сетки. Каждый объект сетки отображает имя упражнения и две кнопки или отображает набор упражнений и две кнопки. Это то, на что похоже, когда я не добавляю кнопки для каждого набора. enter image description hereПочему добавление кнопок в сетку приводит к изменению текстового вида?

Как только я включаю кнопки для каждого набора, комментируя deleteBtn.setVisibility(View.GONE);, активность отображает это. изменение 3-го на последний объект для отображения упражнения вместо набора. (Прокрутка вниз) enter image description here

getLocation(int i) определяет, будет ли объект сетки выполнять упражнение или установить. местоположение [0] определяет упражнение и местоположение 1, если == 0 относится к упражнению и местоположению 1> 0 относится к набору упражнений.

private int[] getLocation(int i) { 
    db = new DatabaseHelper(context); 

    int temp[] = {-1, -1}; 

    int count = -1; 
    for (int we = 0; we < WE_TABLE.size(); we++) { 
     for (int s = 0; s < db.getSetCountByWEID(WE_TABLE.get(we).getID()) + 1; s++) { 
      count++; 

      if (count == i) { 
       //Log.e("Test","WE: " + we+ " S: " + s + " For: " + i); 
       temp[0] = we; 
       temp[1] = s; 
       db.closeDB(); 
       return temp; 
      } 

     } 
    } 
    db.closeDB(); 
    return temp; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
    int temp_p = position; 
    TextView tv; 
    View view = convertView; 


    if (view == null) { 
     totalObj++; 
     Obj = totalObj; 
     int[] location = getLocation(Obj - 1); 
     db = new DatabaseHelper(context); 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     view = inflater.inflate(R.layout.activity_workout_view_gridview, null); 
     tv = new TextView(context); 
     tv.setLayoutParams(new GridView.LayoutParams(GridView.LayoutParams.FILL_PARENT, GridView.LayoutParams.WRAP_CONTENT)); 
     Button deleteBtn = (Button) view.findViewById(R.id.delete_btn); 
     Button addBtn = (Button) view.findViewById(R.id.add_btn); 


     tv = (TextView) view.findViewById(R.id.list_item_string); 
     String Exercises = (Obj + " " + location[0] + "," + location[1]); 
     Log.e("Test", "Location: " + location[0] + " , " + location[1] + " Number " + Obj); 


     if (location[1] == -1) { 

     } else if (location[1] == 0) { 
      WorkoutExercise WE = WE_TABLE.get(location[0]); 
      Exercises = WE.getExerciseName(); 

      // addBtn.setVisibility(View.GONE); 
      //deleteBtn.setVisibility(View.GONE); 

     } else { 
      S_TABLE = db.getSets(WE_TABLE.get(location[0]).getID() + ""); 
      Exercises = S_TABLE.get(location[1] - 1).getWeight() + "lbs " + S_TABLE.get(location[1] - 1).getReps() + " Reps"; 

      addBtn.setVisibility(View.GONE); 
      //deleteBtn.setVisibility(View.GONE); 
     } 

     deleteBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //do something 

      } 
     }); 
     addBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //do something 

      } 
     }); 
     tv.setText(Exercises); 

     db.closeDB(); 

    } 
    return view; 


} 

И мой XML для каждой строки:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


    <TextView 
     android:id="@+id/list_item_string" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_alignParentLeft="true" 
     android:paddingLeft="8dp" 
     android:textSize="18sp" 
     android:textStyle="bold" /> 

    <Button 
     android:id="@+id/delete_btn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="0dp" 
     android:text="Dele" /> 

    <Button 
     android:id="@+id/add_btn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toLeftOf="@id/delete_btn" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="0dp" 
     android:text="Add" /> 
</RelativeLayout> 
+3

Посмотрите, как вы приложенный ту же картину дважды. – talex

+0

Извините, я исправил, что случайно попал в submit, прежде чем я закончил печатать. – enrique2334

+1

Это проблема макета. У вас больше высота кнопок, чем высота текста, но они должны быть в одной строке. – talex

ответ

0

Я опустил высоту, чтобы соответствовать тексту и он работает должным образом, благодаря TAlex

Смежные вопросы