2015-06-18 11 views
0

我的android活動鍛鍊視圖顯示一個網格視圖。網格視圖的每個對象都顯示練習的名稱和兩個按鈕,或者它顯示一個練習集和兩個按鈕。這是當我不向每個集合添加按鈕時的樣子。 enter image description here爲什麼向網格視圖添加按鈕會導致文本視圖更改?

一旦我通過註釋deleteBtn.setVisibility(View.GONE);啓用按鈕到每個集合,活動就會顯示出來。將第三個對象更改爲顯示練習而不是一組。 (向下滾動) 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

對不起,我修復了在打字完成之前不小心打了提交。 – enrique2334

+1

這是佈局問題。您按鈕高度高於文本高度,但它們應位於同一行。 – talex

回答

0

我降低了高度,以匹配文本,這是正常工作,這要歸功於talex

相關問題