Я использую ListView, я хочу преобразовать его в ExpandableListView. Я извлекаю данные из MS SQL. Я определяю название и содержание в соответствии с данными, которые я взял. Заголовок: текст Заголовок, содержание: txtQueryContent. Я хочу, чтобы это было открыто и закрыто. Это не открывается прямо сейчас. Все темы и детали отображаются (см. Фото). Я хочу сделать это в виде раскрывающегося списка.
import static android.text.Layout.JUSTIFICATION_MODE_INTER_WORD;
public class SSSFragment extends Fragment {
private SsViewModel mViewModel;
private ArrayList<ClassListItems> itemArrayList; //List items Array
private MyAppAdapter myAppAdapter; //Array Adapter
private ListView listView; // Listview
private boolean success = false; // boolean
private ConnectionClass connectionClass; //Connection Class Variable
public static SSSFragment newInstance() {
return new SSSFragment();
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.ss_fragment, container, false);
listView = (ListView) root.findViewById(R.id.listView); //Listview Declaration
connectionClass = new ConnectionClass(); // Connection Class Initialization
itemArrayList = new ArrayList<ClassListItems>(); // Arraylist Initialization
// Calling Async Task
SyncData orderData = new SyncData();
orderData.execute("");
return root;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mViewModel = ViewModelProviders.of(this).get(SsViewModel.class);
// TODO: Use the ViewModel
}
// Async Task has three overrided methods,
private class SyncData extends AsyncTask<String, String, String>
{
String msg = "Internet/DB_Credentials/Windows_FireWall_TurnOn Error, See Android Monitor in the bottom For details!";
ProgressDialog progress;
@Override
protected void onPreExecute()
{
progress = ProgressDialog.show(getContext(), "Synchronising",
"Lütfen Bekleyiniz...", true);
}
@Override
protected String doInBackground(String... strings)
{
try
{
Connection conn = connectionClass.CONN(); //Connection Object
if (conn == null)
{
success = false;
}
else {
// Change below query according to your own database.
String query = "SELECT ...,...,... FROM ... Where soru_tur=1";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
if (rs != null)
{
while (rs.next())
{
try {
itemArrayList.add(new ClassListItems(rs.getString("..."),rs.getString("..."),rs.getInt("...")));
} catch (Exception ex) {
ex.printStackTrace();
}
}
msg = "Found";
success = true;
} else {
msg = "No Data found!";
success = false;
}
}
} catch (Exception e)
{
e.printStackTrace();
Writer writer = new StringWriter();
e.printStackTrace(new PrintWriter(writer));
msg = writer.toString();
success = false;
}
return msg;
}
@Override
protected void onPostExecute(String msg)
{
progress.dismiss();
// Toast.makeText(getContext(), msg + "", Toast.LENGTH_LONG).show();
if (success == false)
{
}
else {
try {
myAppAdapter = new MyAppAdapter(itemArrayList, getContext());
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setAdapter(myAppAdapter);
} catch (Exception ex)
{
}
}
}
}
public class MyAppAdapter extends BaseAdapter
{
public class ViewHolder
{
TextView textBaslik,txtsoruicerik;
}
public List<ClassListItems> parkingList;
public Context context;
ArrayList<ClassListItems> arraylist;
private MyAppAdapter(List<ClassListItems> apps, Context context)
{
this.parkingList = apps;
this.context = context;
arraylist = new ArrayList<ClassListItems>();
arraylist.addAll(parkingList);
}
@Override
public int getCount() {
return parkingList.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) // inflating the layout and initializing widgets
{
View rowView = convertView;
ViewHolder viewHolder= null;
if (rowView == null)
{
LayoutInflater inflater = getLayoutInflater();
rowView = inflater.inflate(R.layout.list_content_sss, parent, false);
viewHolder = new ViewHolder();
viewHolder.textBaslik = (TextView) rowView.findViewById(R.id.txt_baslik);
viewHolder.txtsoruicerik = (TextView) rowView.findViewById(R.id.text_soruicerik);
rowView.setTag(viewHolder);
}
else
{
viewHolder = (ViewHolder) convertView.getTag();
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
viewHolder.textBaslik.setText(Html.fromHtml(parkingList.get(position).getName()+"", Html.FROM_HTML_MODE_COMPACT));
viewHolder.txtsoruicerik.setText(Html.fromHtml(parkingList.get(position).getImg2()+"", Html.FROM_HTML_MODE_COMPACT));
} else {
viewHolder.textBaslik.setText(Html.fromHtml(parkingList.get(position).getName()+""));
viewHolder.txtsoruicerik.setText(Html.fromHtml(parkingList.get(position).getImg2()+""));
}
return rowView;
}
}