Мое представление активности тренировки Android показывает вид сетки. Каждый объект сетки отображает имя упражнения и две кнопки или отображает набор упражнений и две кнопки. Это то, на что похоже, когда я не добавляю кнопки для каждого набора. Почему добавление кнопок в сетку приводит к изменению текстового вида?
Как только я включаю кнопки для каждого набора, комментируя deleteBtn.setVisibility(View.GONE);
, активность отображает это. изменение 3-го на последний объект для отображения упражнения вместо набора. (Прокрутка вниз)
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>
Посмотрите, как вы приложенный ту же картину дважды. – talex
Извините, я исправил, что случайно попал в submit, прежде чем я закончил печатать. – enrique2334
Это проблема макета. У вас больше высота кнопок, чем высота текста, но они должны быть в одной строке. – talex