展開可能なリストビューがあり、子をクリックするたびに、ChildPosition に従って何が開くかを決定します。ただし、問題は ChildPosition が「headre 行」に対してリセットされることです。たとえば、ヘッダー 1 とヘッダー 2 があり、両方のヘッダーに 4 つの子があります。ヘッダー 1 の下の Child1 の位置は 0 で、ヘッダー 2 の下の Child1 の位置も 0 です。
私は常に ChildPosition を次のアクティビティの追加として渡し、その int に従って別の WebView が開くため、これは私のコードを台無しにします。コードは次のとおりです。
余分に渡す:
expListView.setOnChildClickListener(new OnChildClickListener(){
@Override
public boolean onChildClick(ExpandableListView arg0, View arg1,
int arg2, int childPosition, long arg4) {
//Starting intent
Intent scheudele = new Intent(MainActivity.this, Scheudele.class);
scheudele.putExtra("razred", childPosition);
startActivity(scheudele);
Log.i("TAG", "Position: " + childPosition);
return false;
}
});
そのエクストラを使用して URL をロードします。
public void getWebView(){
razredData = getIntent();
int position = razredData.getIntExtra("razred", 0);
String urlToLoad = null;
switch (position){
case 0:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/16515/0/0/1";
break;
case 1:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/16520/0/0/1";
break;
case 2:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/16516/0/0/1";
break;
case 3:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/16517/0/0/1";
break;
case 4:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/16518/0/0/1";
break;
case 5:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/18222/0/0/1";
break;
case 6:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/18223/0/0/1";
break;
case 7:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/18224/0/0/1";
break;
case 8:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/18225/0/0/1";
break;
case 9:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/18215/0/0/1";
break;
case 10:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/18216/0/0/1";
break;
case 11:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/18217/0/0/1";
break;
case 12:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/18219/0/0/1";
break;
case 13:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/18220/0/0/1";
break;
case 14:
urlToLoad = "https://www.easistent.com/urniki/izpis/263/18221/0/0/1";
break;
}
//Loading WebView URL
webView.loadUrl(urlToLoad);
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
}
ですから、すでにご想像のとおりです。ヘッダー 1 の下の子をクリックすると、正しい URL が表示されますが、ヘッダー 2 の下の子をクリックし始めると、その位置が 0 にリセットされ、「ケース 0」の URL が再び表示されます。これを修正するにはどうすればよいですか?