0

Я использую webview в родительских и дочерних группах расширяемого списка. но он не отображает список. и для этого требуется разрешение Bluetooth.webview в expandablelistview ничего не показывает

мой адаптер для расширяемого списка

package com.example.gopideiva.mathbook; 
import android.content.Context; 
import android.graphics.Typeface; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.webkit.WebView; 
import android.widget.BaseExpandableListAdapter; 
import android.widget.TextView; 

public class ExpandableListAdapter extends BaseExpandableListAdapter { 

private Context _context; 
private List<String> _listDataHeader; // header titles 
// child data in format of header title, child title 
private HashMap<String, List<String>> _listDataChild; 

public ExpandableListAdapter(Context context, List<String> listDataHeader, 
     HashMap<String, List<String>> listChildData) { 
    this._context = context; 
    this._listDataHeader = listDataHeader; 
    this._listDataChild = listChildData; 
} 

@Override 
public Object getChild(int groupPosition, int childPosititon) { 
    return this._listDataChild.get(this._listDataHeader.get(groupPosition)) 
      .get(childPosititon); 
} 

@Override 
public long getChildId(int groupPosition, int childPosition) { 
    return childPosition; 
} 

@Override 
public View getChildView(int groupPosition, final int childPosition, 
     boolean isLastChild, View convertView, ViewGroup parent) { 

    final String childText = (String) getChild(groupPosition, childPosition); 

    if (convertView == null) { 
     LayoutInflater infalInflater = (LayoutInflater) this._context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = infalInflater.inflate(R.layout.onemarkans, null); 
    } 

    WebView txtListChild = (WebView) convertView 
      .findViewById(R.id.webView2); 

    txtListChild.getSettings().setJavaScriptEnabled(true); 
    txtListChild.getSettings().setDomStorageEnabled(true); 
    txtListChild.loadData(childText, "text/html", null); 
    return convertView; 
} 

@Override 
public int getChildrenCount(int groupPosition) { 
    return this._listDataChild.get(this._listDataHeader.get(groupPosition)) 
      .size(); 
} 

@Override 
public Object getGroup(int groupPosition) { 
    return this._listDataHeader.get(groupPosition); 
} 

@Override 
public int getGroupCount() { 
    return this._listDataHeader.size(); 
} 

@Override 
public long getGroupId(int groupPosition) { 
    return groupPosition; 
} 

@Override 
public View getGroupView(int groupPosition, boolean isExpanded, 
     View convertView, ViewGroup parent) { 
    try { 


     String headerTitle = (String) getGroup(groupPosition); 
     if (convertView == null) { 
      LayoutInflater infalInflater = (LayoutInflater) this._context 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = infalInflater.inflate(R.layout.onemarkque, null); 
     } 

     WebView lblListHeader = (WebView) convertView 
       .findViewById(R.id.webView); 
     lblListHeader.getSettings().setJavaScriptEnabled(true); 
     lblListHeader.getSettings().setDomStorageEnabled(true); 
     //lblListHeader.loadDataWithBaseURL(null,headerTitle,"text/html","utf-8",null); 
     lblListHeader.loadData(headerTitle, "text/html", "utf-8"); 

    } 
    catch (Exception e){ 
     Log.d("gopi","error in header"+e.getMessage()); 
    } 

    return convertView; 
} 

@Override 
public boolean hasStableIds() { 
    return false; 
} 

@Override 
public boolean isChildSelectable(int groupPosition, int childPosition) { 
    return true; 
} 

}

это моя почта деятельность- Добро пожаловать

package com.example.gopideiva.mathbook; 
import android.app.Activity; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBar; 
import android.support.v7.app.ActionBarActivity; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ExpandableListView; 
import android.widget.TextView; 
import android.widget.Toast; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 

public class Welcome extends ActionBarActivity 
    implements NavigationDrawerFragment.NavigationDrawerCallbacks { 

/** 
* Fragment managing the behaviors, interactions and presentation of the navigation drawer. 
*/ 
private NavigationDrawerFragment mNavigationDrawerFragment; 

/** 
* Used to store the last screen title. For use in {@link #restoreActionBar()}. 
*/ 
public static CharSequence mTitle; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_welcome); 

    mNavigationDrawerFragment = (NavigationDrawerFragment) 
      getSupportFragmentManager().findFragmentById(R.id.navigation_drawer); 
    mTitle = getTitle(); 

    // Set up the drawer. 
    mNavigationDrawerFragment.setUp(
      R.id.navigation_drawer, 
      (DrawerLayout) findViewById(R.id.drawer_layout)); 
} 

@Override 
public void onNavigationDrawerItemSelected(int position) { 
    // update the main content by replacing fragments 
    FragmentManager fragmentManager = getSupportFragmentManager(); 
    fragmentManager.beginTransaction() 
      .replace(R.id.container, PlaceholderFragment.newInstance(position + 1)) 
      .commit(); 
} 

public void onSectionAttached(int number) { 
    switch (number) { 
     case 1: 
      mTitle = getString(R.string.title_section1); 
      break; 
     case 2: 
      mTitle = getString(R.string.title_section2); 
      break; 
     case 3: 
      mTitle = getString(R.string.title_section3); 
      break; 
     case 4: 
      mTitle = getString(R.string.title_section4); 
      break; 
     case 5: 
      mTitle = getString(R.string.title_section5); 
      break; 
    } 
} 

public void restoreActionBar() { 
    ActionBar actionBar = getSupportActionBar(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 
    actionBar.setDisplayShowTitleEnabled(true); 
    actionBar.setTitle(mTitle); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    if (!mNavigationDrawerFragment.isDrawerOpen()) { 
     // Only show items in the action bar relevant to this screen 
     // if the drawer is not showing. Otherwise, let the drawer 
     // decide what to show in the action bar. 
     getMenuInflater().inflate(R.menu.welcome, menu); 
     restoreActionBar(); 
     return true; 
    } 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

/** 
* A placeholder fragment containing a simple view. 
*/ 
public static class PlaceholderFragment extends Fragment { 
    /** 
    * The fragment argument representing the section number for this 
    * fragment. 
    */ 
    ExpandableListAdapter listAdapter; 
    ExpandableListView expListView; 
    List<String> listDataHeader; 
    HashMap<String, List<String>> listDataChild; 
    private static final String ARG_SECTION_NUMBER = "section_number"; 

    /** 
    * Returns a new instance of this fragment for the given section 
    * number. 
    */ 
    public static PlaceholderFragment newInstance(int sectionNumber) { 
     PlaceholderFragment fragment = new PlaceholderFragment(); 
     Bundle args = new Bundle(); 
     args.putInt(ARG_SECTION_NUMBER, sectionNumber); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    public PlaceholderFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     Log.d("gopi","title is"+mTitle); 
     if (mTitle.equals("1 Marks")){ 
      View rootView = inflater.inflate(R.layout.onemarks, container, false); 
      expListView = (ExpandableListView) rootView.findViewById(R.id.expandableListView); 
      prepareListData(); 
      listAdapter = new ExpandableListAdapter(getActivity(), listDataHeader, listDataChild); 

      // setting list adapter 
      expListView.setAdapter(listAdapter); 

      // Listview Group click listener 
      expListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { 

       @Override 
       public boolean onGroupClick(ExpandableListView parent, View v, 
              int groupPosition, long id) { 
        // Toast.makeText(getApplicationContext(), 
        // "Group Clicked " + listDataHeader.get(groupPosition), 
        // Toast.LENGTH_SHORT).show(); 
        return false; 
       } 
      }); 

      // Listview Group expanded listener 
      expListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { 

       @Override 
       public void onGroupExpand(int groupPosition) { 
        Toast.makeText(getActivity(), 
          listDataHeader.get(groupPosition) + " Expanded", 
          Toast.LENGTH_SHORT).show(); 
       } 
      }); 

      // Listview Group collasped listener 
      expListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() { 

       @Override 
       public void onGroupCollapse(int groupPosition) { 
        Toast.makeText(getActivity(), 
          listDataHeader.get(groupPosition) + " Collapsed", 
          Toast.LENGTH_SHORT).show(); 

       } 
      }); 

      // Listview on child click listener 
      expListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 

       @Override 
       public boolean onChildClick(ExpandableListView parent, View v, 
              int groupPosition, int childPosition, long id) { 
        // TODO Auto-generated method stub 
        Toast.makeText(
          getActivity(), 
          listDataHeader.get(groupPosition) 
            + " : " 
            + listDataChild.get(
            listDataHeader.get(groupPosition)).get(
            childPosition), Toast.LENGTH_SHORT) 
          .show(); 
        return false; 
       } 
      }); 

      return rootView; 
     } 
     else if (mTitle.equals("3 Marks")){ 
      View rootView = inflater.inflate(R.layout.threemarks, container, false); 
      return rootView; 
     } 
     else if (mTitle.equals("5 Marks")){ 
      View rootView = inflater.inflate(R.layout.fivemarks, container, false); 
      return rootView; 
     } 
     else if (mTitle.equals("10 Marks")){ 
      View rootView = inflater.inflate(R.layout.tenmarks, container, false); 
      return rootView; 
     } 
     else{ 
      View rootView = inflater.inflate(R.layout.fragment_welcome, container, false); 
      TextView t = (TextView) rootView.findViewById(R.id.textview1); 
      t.setText(Welcome.mTitle); 
      return rootView; 
     } 

    } 
    private void prepareListData() { 
     listDataHeader = new ArrayList<String>(); 
     listDataChild = new HashMap<String, List<String>>(); 

     // Adding child data 
     listDataHeader.add("<html><body><p>question 1</p></body></html>"); 
     listDataHeader.add("<html><body><p>question 2</p></body></html"); 
     listDataHeader.add("<html><body><p>question 3</p></body></html"); 

     // Adding child data 
     List<String> que1 = new ArrayList<String>(); 
     que1.add("<html><body><p>123</p></body></html>"); 


     List<String> que2 = new ArrayList<String>(); 
     que2.add("<html><body><p>234</p></body></html>"); 


     List<String> que3 = new ArrayList<String>(); 
     que3.add("<html><body><p>345</p></body></html>"); 

     listDataChild.put(listDataHeader.get(0), que1); // Header, Child data 
     listDataChild.put(listDataHeader.get(1), que2); 
     listDataChild.put(listDataHeader.get(2), que3); 
    } 

    @Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
     ((Welcome) activity).onSectionAttached(
       getArguments().getInt(ARG_SECTION_NUMBER)); 
    } 
} 

}

onemarks XMLFILE

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 


<ExpandableListView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/expandableListView" 
    android:layout_gravity="center_horizontal" /> 
</LinearLayout> 

onemarkque.xml ---- заголовок списка

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 


<WebView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/webView" 
    android:background="#124578"/> 
</LinearLayout> 

onemarkans.xml --- ребенок списка

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:weightSum="1"> 


<WebView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/webView2" /> 
</LinearLayout> 

я использую по умолчанию шаблон панели навигации в Android Studio. Я не могу опубликовать его из-за длины содержимого. если я хочу, я отправлю его в поле ответа.

enter code here 

Если я использовал текст в расширяемом списке, он дает результат. для веб-просмотра это не так.

мой журнал выглядит следующим образом

01-07 06:54:01.906 12300-12300/com.example.gopideiva.mathbook I/art﹕ Late- enabling -Xcheck:jni 
01-07 06:54:02.236 12300-12300/com.example.gopideiva.mathbook D/gopi﹕ title  isWelcome 
01-07 06:54:02.257 12300-12318/com.example.gopideiva.mathbook D/OpenGLRenderer﹕ Use EGL_SWAP_BEHAVIOR_PRESERVED: true 
01-07 06:54:02.267 12300-12300/com.example.gopideiva.mathbook D/Atlas﹕ Validating map... 
01-07 06:54:02.327 12300-12318/com.example.gopideiva.mathbook I/Adreno-EGL﹕  <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build:  AU_LINUX_ANDROID_LA.BF.1.1.1_RB1.05.00.02.042.016_msm8610_LA.BF.1.1.1_RB1__relea se_AU() 
OpenGL ES Shader Compiler Version: E031.25.03.00 
Build Date: 02/11/15 Wed 
Local Branch: 
Remote Branch: quic/LA.BF.1.1.1_rb1.10 
Local Patches: NONE 
Reconstruct Branch: AU_LINUX_ANDROID_LA.BF.1.1.1_RB1.05.00.02.042.016 +  62ca4eb + acd831d + 9f8b442 + e027a02 + cba30ba + 53c303a + a649d79 + 23e16f8 +  5e97da7 + cbd2a44 + 33d072a + 7aacf06 + 72b33e7 + 28f6f60 + b4c13d8 + NOTHING 
01-07 06:54:02.329 12300-12318/com.example.gopideiva.mathbook I/OpenGLRenderer﹕ Initialized EGL, version 1.4 
01-07 06:54:02.352 12300-12318/com.example.gopideiva.mathbook D/OpenGLRenderer﹕ Enabling debug mode 0 
01-07 06:54:05.432 12300-12300/com.example.gopideiva.mathbook D/gopi﹕ title is3 Marks 
01-07 06:54:08.419 12300-12300/com.example.gopideiva.mathbook D/gopi﹕ title is1 Marks 
01-07 06:54:08.537 12300-12300/com.example.gopideiva.mathbook I/WebViewFactory﹕ Loading com.google.android.webview version 46.0.2490.76 (code 249007600) 
01-07 06:54:08.573 12300-12300/com.example.gopideiva.mathbook I/cr.library_loader﹕ Time to load native libraries: 3 ms (timestamps 9692-9695) 
01-07 06:54:08.573 12300-12300/com.example.gopideiva.mathbook I/cr.library_loader﹕ Expected native library version number "46.0.2490.76", actual native library version number "46.0.2490.76" 
01-07 06:54:08.602 12300-12300/com.example.gopideiva.mathbook I/cr.library_loader﹕ Expected native library version number "46.0.2490.76", actual native library version number "46.0.2490.76" 
01-07 06:54:08.603 12300-12300/com.example.gopideiva.mathbook I/chromium﹕ [INFO:library_loader_hooks.cc(118)] Chromium logging enabled: level = 0, default verbosity = 0 
01-07 06:54:08.624 12300-12300/com.example.gopideiva.mathbook I/cr.BrowserStartup﹕ Initializing chromium process, singleProcess=true 
01-07 06:54:08.643 12300-12300/com.example.gopideiva.mathbook E/SysUtils﹕ ApplicationContext is null in ApplicationStatus 
01-07 06:54:08.742 12300-12300/com.example.gopideiva.mathbook E/chromium﹕ [ERROR:browser_gpu_channel_host_factory.cc(258)] Failed to init browser shader disk cache. 
01-07 06:54:08.786 12300-12300/com.example.gopideiva.mathbook E/libEGL﹕ validate_display:255 error 3008 (EGL_BAD_DISPLAY) 
01-07 06:54:08.798 12300-12739/com.example.gopideiva.mathbook D/BluetoothAdapter﹕ 767924514: getState() : mService = null. Returning STATE_OFF 
01-07 06:54:08.805 12300-12300/com.example.gopideiva.mathbook I/art﹕ Rejecting re-init on previously-failed class  java.lang.Class<com.android.webview.chromium.WebViewContentsClientAdapter$WebRes ourceErrorImpl> 
01-07 06:54:08.805 12300-12300/com.example.gopideiva.mathbook I/art﹕  Rejecting re-init on previously-failed class  java.lang.Class<com.android.webview.chromium.WebViewContentsClientAdapter$WebRes ourceErrorImpl> 
01-07 06:54:08.873 12300-12300/com.example.gopideiva.mathbook I/art﹕ Rejecting re-init on previously-failed class java.lang.Class<org.chromium.content.browser.FloatingWebActionModeCallback> 
01-07 06:54:08.873 12300-12300/com.example.gopideiva.mathbook I/art﹕ Rejecting re-init on previously-failed class java.lang.Class<org.chromium.content.browser.FloatingWebActionModeCallback> 
01-07 06:54:08.904 12300-12300/com.example.gopideiva.mathbook W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring 
01-07 06:54:08.916 12300-12300/com.example.gopideiva.mathbook W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring 
01-07 06:54:08.987 12300-12300/com.example.gopideiva.mathbook W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring 
01-07 06:54:08.990 12300-12300/com.example.gopideiva.mathbook W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring 
01-07 06:54:09.039 12300-12300/com.example.gopideiva.mathbook W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring 
01-07 06:54:09.043 12300-12300/com.example.gopideiva.mathbook W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring 
01-07 06:54:09.125 12300-12300/com.example.gopideiva.mathbook W/cr.BindingManager﹕ Cannot call determinedVisibility() - never saw a connection for the pid: 12300 
01-07 06:54:09.128 12300-12300/com.example.gopideiva.mathbook W/cr.BindingManager﹕ Cannot call determinedVisibility() - never saw a connection for the pid: 12300 
01-07 06:54:09.130 12300-12300/com.example.gopideiva.mathbook W/cr.BindingManager﹕ Cannot call determinedVisibility() - never saw a connection  for the pid: 12300 
01-07 06:54:09.185 12300-12300/com.example.gopideiva.mathbook W/cr.BindingManager﹕ Cannot call determinedVisibility() - never saw a connection for the pid: 12300 
01-07 06:54:09.186 12300-12300/com.example.gopideiva.mathbook W/cr.BindingManager﹕ Cannot call determinedVisibility() - never saw a connection for the pid: 12300 

Выход иногда показывает 1-ый элемент в заголовке. иногда это не так. Помогите мне выйти из этого.

ответ

0

Webview имеет свой скроллер.

И это противоречило вашему списку.

Вы обнаружили, что это нормально, вы просто используете веб-просмотр или список, если пытаетесь.

+0

Я использовал веб-просмотр со списком. Он работает нормально. Тогда только u попытался с расширяемым списком просмотров –

+0

Caowenhua Не могли бы вы сказать еще раз? –

Смежные вопросы