Tried to make when you click on an item in the ExpandableListView to open the WebView. I used to use a listview and there you could do it
Code from ListView
public class activity_stigmata_detail_4 extends ListActivity { private String titles[] = { "несколько элементов", }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_stigmata_detail_4); ListView listView = findViewById(R.id.listView); listView.setAdapter( new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, titles)); listView.setTextFilterEnabled(true); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> a, View v, int position, long id) { Intent intent = new Intent(); intent.setClass(activity_stigmata_detail_4.this, activity_stigmata_detail_4_view.class); intent.putExtra("title", position); startActivity(intent); } }); } }
Code from webview
public class activity_stigmata_detail_4_view extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_stigmata_detail_4_view); WebView webView = findViewById(R.id.webView); Intent intent = getIntent(); String resName = "q" + intent.getIntExtra("mSpringMonthsArray", 0); Log.i("name", resName); Context context = getBaseContext(); //получаем контекст String text = readRawTextFile(context, getResources().getIdentifier(resName, "raw", ".....")); webView.loadDataWithBaseURL(null, text, "text/html", "UTF-8", null); } private String readRawTextFile(Context context, int resId) { InputStream inputStream = context.getResources().openRawResource(resId); InputStreamReader inputReader = new InputStreamReader(inputStream); BufferedReader buffReader = new BufferedReader(inputReader); String line; StringBuilder builder = new StringBuilder(); try { while (( line = buffReader.readLine()) != null) { builder.append(line); builder.append("\n"); } } catch (IOException e) { return null; } return builder.toString(); } }
And that's what I tried to do in ExpanableListView
public class activity_stigmata_detail extends AppCompatActivity { private String[] mGroupsArray = new String[]{"несколько элементов",}; private String[] mWinterMonthsArray = new String[]{"несколько элементов",}; private String[] mSpringMonthsArray = new String[]{"несколько элементов",}; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setTitle("Stigmata"); Map <String, String> map; ArrayList <Map <String, String>> groupDataList = new ArrayList <>(); for (String group : mGroupsArray) { map = new HashMap <>(); map.put("groupName", group); groupDataList.add(map); } String groupFrom[] = new String[]{"groupName"}; int groupTo[] = new int[]{android.R.id.text1}; ArrayList <ArrayList <Map <String, String>>> сhildDataList = new ArrayList <>(); // в итоге получится сhildDataList = ArrayList<сhildDataItemList> ArrayList <Map <String, String>> сhildDataItemList = new ArrayList <>(); for (String month : mWinterMonthsArray) { map = new HashMap <>(); map.put("monthName", month); сhildDataItemList.add(map); } сhildDataList.add(сhildDataItemList); сhildDataItemList = new ArrayList <>(); for (String month : mSpringMonthsArray) { map = new HashMap <>(); map.put("monthName", month); сhildDataItemList.add(map); } сhildDataList.add(сhildDataItemList); String childFrom[] = new String[]{"monthName"}; int childTo[] = new int[]{android.R.id.text1}; SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter( this, groupDataList, android.R.layout.simple_expandable_list_item_1, groupFrom, groupTo, сhildDataList, android.R.layout.simple_list_item_1, childFrom, childTo); ExpandableListView expandableListView = (ExpandableListView) findViewById(R.id.expListView); expandableListView.setAdapter(adapter); expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { Intent intent = new Intent(); intent.setClass(activity_stigmata_detail.this, activity_stigmata_detail_4_view.class); intent.putExtra("mSpringMonthsArray", childPosition); return false; } }); } } But the code in expanableListView does not work, the elements do not respond to clicking
startActivity(intent);in the handler. - woesss 1:56 pm