J'essaie de changer la gravité d'un GridView chaque fois que je clique sur un bouton, mais l'application se bloque lors du déploiement. Je ne suis pas sûr pourquoi cela se produit lorsque le GridView a été déclaré dans la mise en page XML.GridView gravity ne changera pas
tentative d'invoquer la méthode virtuelle 'android.view.ViewGroup $ LayoutParams android.widget.GridView.getLayoutParams()' sur une référence d'objet null
sw600dp/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/btn_moveup"
android:text="move up"
android:background="@android:color/transparent"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_gravity="top"
android:onClick="moveup_click"
/>
<GridView
android:id="@+id/abslistview_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:numColumns="auto_fit"
/>
<Button
android:id="@+id/btn_movedown"
android:text="move down"
android:background="@android:color/transparent"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_gravity="bottom"
android:onClick="movedown_click"
/>
</LinearLayout>
MainActivity.java MainActivity public class activité {
Activity mActivity;
private Button btnUp;
private Button btnDown;
private GridView gridMain;
private AbsListView absListView;
private ArrayAdapter<MainItem> adapter;
private ArrayList<MainItem> mainArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
absListView = findViewById(R.id.abslistview_main);
settingData();
adapter = new AbsListViewAdapter(this, R.layout.item_abslistview, mainArrayList);
absListView.setAdapter(adapter);
}
private void settingData() {
mainArrayList = new ArrayList<>();
mainArrayList.add(new MainItem(R.drawable.ic_circle, getResources().getString(R.string.item_1)));
mainArrayList.add(new MainItem(R.drawable.ic_star, getResources().getString(R.string.item_2)));
mainArrayList.add(new MainItem(R.drawable.ic_square, getResources().getString(R.string.item_3)));
mainArrayList.add(new MainItem(R.drawable.ic_triangle, getResources().getString(R.string.item_4)));
mainArrayList.add(new MainItem(R.drawable.ic_rectangle, getResources().getString(R.string.item_5)));
mainArrayList.add(new MainItem(R.drawable.ic_crescent, getResources().getString(R.string.item_6)));
}
public void moveup_click(View view) {
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) gridMain.getLayoutParams();
gridMain = findViewById(R.id.abslistview_main);
if (params.gravity == Gravity.BOTTOM) {
gridMain.setGravity(Gravity.CENTER_VERTICAL);
btnDown.setVisibility(View.VISIBLE);
} else if (params.gravity == Gravity.CENTER_VERTICAL) {
gridMain.setGravity(Gravity.TOP);
btnUp.setVisibility(View.GONE);
}
}
}