我有一個導航抽屜,我可以用來在片段布局之間切換。在fragment_teacher Fragment中,我有一個空的listView,我正試圖填充它。理論上,串列確實被填充了,但是當我在應用程式本身中切換到該片段時,什么都沒有顯示出來。我怎樣才能使其正常作業呢?
MainActivity.java:
package com.promate04.dszp_map;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.Menu;
import android.view.View。
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.navigation.NavigationView;
import androidx.navigation.NavController;
import androidx.navigation.Navigation。
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI。
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.AppCompatActivity;
import com.promate04.dszp_map.databinding.ActivityMainBinding;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private AppBarConfiguration mAppBarConfiguration;
private ActivityMainBinding系結。
//private List<Teacher> myTeachers = new ArrayList<Teacher> ();
private ListView myTeachers;
private String fullNames[] = {
"教師#1"。
"教師 #2"。
"教師#3"。
"4號教師"。
"5號教師"。
"6號教師"。
"7號教師"。
"教師#8"。
};
private String descrptions[] = {
"東西"。
"something else",
"還有這個"。
"也是那個"。
"this aswell"。
"還有這個"。
"這個也要在這里"。
"是的,這也是"。
};
private int pictureID[ ] = {
R.drawable.placeholder。
R.drawable.placeholder。
R.drawable.placeholder。
R.drawable.placeholder,
R.drawable.placeholder。
R.drawable.placeholder。
R.drawable.placeholder。
R.drawable.placeholder
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(s savedInstanceState)。
binding = ActivityMainBinding.inflate(getLayoutInflater())。
setContentView(binding.getRoot())。
setSupportActionBar(binding.appBarMain.toolbar)。
DrawerLayout drawer = binding.drawerLayout;
NavigationView navigationView = binding.navView。
//將每個選單ID作為一組Ids來傳遞,因為每個
//選單應被視為最高級別的目的地。
mAppBarConfiguration = new AppBarConfiguration.Builder(
R.id.nav_bell, R.id.nav_timetable, R.id.nav_map, R.id.nav_news, R.id.nav_teachers, R.id.nav_settings)
.setOpenableLayout(drawer)
.build()。
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main)。
NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration)。
NavigationUI.setupWithNavController(navigationView, navController)。
ListView _teacherListView = (ListView) findViewById(R.id.teachesListView) 。
//_teacherListView.addHeaderView(textView);
Teacher teacherList = new Teacher(this, fullNames, descrptions, pictureID)。)
_teacherListView.setAdapter(teacherList)。
_teacherListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override[/span
public void onItemClick(AdapterView< ? > adapterView, View view, int position, long l) {
Toast.makeText(getApplicationContext(), "You selected " fullNames[position] " teacher", Toast.LENGTH_SHORT).show()。
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu) {
//膨脹選單,如果行動欄存在的話,這將把專案添加到行動欄中。
getMenuInflater().inflate(R.menu.main, menu)。
return true。
}
@Override; }
public boolean onSupportNavigateUp() {
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main)。
return NavigationUI.navigateUp(navController, mAppBarConfiguration)
|| super.onSupportNavigateUp()。
}
Teacher.java:
package com.promate04.dszp_map;
import android.app.Activity。
import android.app.Fragment。
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.promate04.dszp_map.databinding.FragmentTimetableBinding;
public class Teacher extends ArrayAdapter {
private String[] fullNames;
private String[] descriptions;
private int[] pictureID;
private Activity context;
public Teacher(Activity _context, String[] _fullNames, String[] _descriptions, int[] _pictureID) /span>{
super(_context, R.layout.teacher_profile, _fullNames)。
this.context = _context;
this.fullNames = _fullNames;
this.descriptions = _descriptions;
this.pictureID = _pictureID;
}
@Override[/span].
public View getView(int position, View convertView, ViewGroup parent) {
View item_view = convertView。
LayoutInflater inflater = context.getLayoutInflater()。
if (convertView == null)
item_view = inflater.inflate(R.layout.teacher_profile, null, true)。
TextView _txtFullName = (TextView) item_view.findViewById(R.id.teacher_txtFullName)。
TextView _txtDescription = (TextView) item_view.findViewById(R.id.teacher_txtDescription) 。
ImageView _teacher_pfp = (ImageView) item_view.findViewById(R.id.teacher_pfp);
_txtFullName.setText(fullNames[position])。
_txtDescription.setText(descriptions[position])。
_teacher_pfp.setImageResource(pictureID[position])。
return item_view。
}
fragment_teacher.xml:
<?xml version="1.0" encoding="utf-8"? >
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"/span>
xmlns:app="http://schemas.android.com/apk/res-auto"。
xmlns:tools="http://schemas.android.com/tools"。
android:layout_width="match_parent"。
android:layout_height="match_parent"。
tools:context=".ui.teacher.TeacherFragment">/span>
<ListView。
android:id="@ id/teachersListView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"。
android:layout_alignParentStart="true"。
android:layout_alignParentTop="true"。
android:layout_alignParentEnd="true"。
android:layout_alignParentBottom="true"。
android:layout_centerInParent="true"。
android:layout_marginStart="0dp"/span>
android:layout_marginTop="0dp"。
android:layout_marginEnd="0dp"。
android:layout_marginBottom="0dp"/span> />
</RelativeLayout>
uj5u.com熱心網友回復:
我很笨,當然我需要把我的代碼放到片段的代碼檔案中,而不是MainActivity..... 謝謝你的評論,它讓我意識到了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/315509.html
標籤:
上一篇:自定義登錄屬性Laravel8
