Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使我的ExpandableListView子项可单击不起作用?_Java_Android - Fatal编程技术网

Java 使我的ExpandableListView子项可单击不起作用?

Java 使我的ExpandableListView子项可单击不起作用?,java,android,Java,Android,当我在我的应用程序上单击子视图时,它不会响应单击。我几乎是尽可能多地在谷歌上搜索,但没有成功。我试着调试它,当我触摸孩子时,它不会进入onclick方法 活动类 public class LetestNews extends ExpandableListActivity{ private ArrayList<String> parentItems = new ArrayList<String>(); private ArrayList<Object

当我在我的应用程序上单击子视图时,它不会响应单击。我几乎是尽可能多地在谷歌上搜索,但没有成功。我试着调试它,当我触摸孩子时,它不会进入
onclick
方法

活动类

public class LetestNews extends ExpandableListActivity{

    private ArrayList<String> parentItems = new ArrayList<String>();
    private ArrayList<Object> childItems = new ArrayList<Object>();

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        // this is not really  necessary as ExpandableListActivity contains an ExpandableList
        //setContentView(R.layout.main);

        ExpandableListView expandableList = getExpandableListView(); // you can use (ExpandableListView) findViewById(R.id.list)

        expandableList.setDividerHeight(2);
        expandableList.setGroupIndicator(null);
        expandableList.setClickable(true);

        setGroupParents();
        setChildData();

        ExpandableAdapter adapter = new ExpandableAdapter(parentItems, childItems);

        adapter.setInflater((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE), this);
        expandableList.setAdapter(adapter);
        //expandableList.setOnChildClickListener(this);
        expandableList.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {


            public boolean onChildClick(ExpandableListView parent, View v,int groupPosition, int childPosition, long id) {

      /* You must make use of the View v, find the view by id and extract the text as below*/

                Toast.makeText(getBaseContext(), "Shaan is a monkey",
                        Toast.LENGTH_SHORT).show();

                return true;  // i missed this
            }
        });


    }

    public void setGroupParents() {
        try {
            FileInputStream newsIn = openFileInput("news.txt");
            String newsObj = "";
            String objEnc="";
            Gson gson=new Gson();
            BufferedReader inputNews = new BufferedReader(new InputStreamReader(newsIn, "UTF-8"));
            StringBuilder sbuilderNews = new StringBuilder();
            newsObj = inputNews.readLine();
            while (newsObj != null) {
                sbuilderNews.append(newsObj);
                newsObj = inputNews.readLine();
                if (newsObj != null) {

                    // sbuilder.append("\n");

                }
            }
            newsIn.close();
            newsObj = sbuilderNews.toString();
            SubredditNews objNews = gson.fromJson(newsObj, SubredditNews.class);
            ArrayList<SubredditIN>subredditObjects=objNews.subreddits;
            for(int i=0;i<subredditObjects.size();i++){

                parentItems.add(subredditObjects.get(i).name);
            }

        }catch(Exception e){

        }

    }

    public void setChildData() {

        // Android
      ArrayList<String> child = new ArrayList<String>();
        String a="";
        /*child.add("Core");
        child.add("Games");
        childItems.add(child);*/
        try {
            FileInputStream newsIn = openFileInput("news.txt");
            String newsObj = "";
            String objEnc="";
            Gson gson=new Gson();
            BufferedReader inputNews = new BufferedReader(new InputStreamReader(newsIn, "UTF-8"));
            StringBuilder sbuilderNews = new StringBuilder();
            newsObj = inputNews.readLine();
            while (newsObj != null) {
                sbuilderNews.append(newsObj);
                newsObj = inputNews.readLine();
                if (newsObj != null) {

                    // sbuilder.append("\n");

                }
            }
            newsIn.close();
            newsObj = sbuilderNews.toString();
            SubredditNews objNews = gson.fromJson(newsObj, SubredditNews.class);
            ArrayList<SubredditIN>subredditObjects=objNews.subreddits;
            for(int i=0;i<objNews.subreddits.size();i++){
                child = new ArrayList<String>();
               for(int j=0;j<objNews.subreddits.get(i).posts.size();j++) {
                   subredditObjects.get(i).setURL();
                   a=subredditObjects.get(i).getPostLink();
                   child.add(objNews.subreddits.get(i).posts.get(j));
                   Log.i("this is the link", a);

               }
                childItems.add(child);
            }

        }catch(Exception e){
            String dd="";
        }


    }

}
    public class ExpandableAdapter extends BaseExpandableListAdapter {

    private Activity activity;
    private ArrayList<Object> childtems;
    private LayoutInflater inflater;
    private ArrayList<String> parentItems, child;

    public ExpandableAdapter(ArrayList<String> parents, ArrayList<Object> childern) {
        this.parentItems = parents;
        this.childtems = childern;
    }

    public void setInflater(LayoutInflater inflater, Activity activity) {
        this.inflater = inflater;
        this.activity = activity;
    }




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

        child = (ArrayList<String>) childtems.get(groupPosition);

        TextView textView = null;

        if (convertView == null) {
            convertView = inflater.inflate(R.layout.group, null);
        }

        textView = (TextView) convertView.findViewById(R.id.textView1);
        textView.setText(child.get(childPosition));
        //textView.setText(Html.fromHtml("<a href=http://www.stackoverflow.com> STACK OVERFLOW "));
        // textView.setMovementMethod(LinkMovementMethod.getInstance());
        convertView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                Toast.makeText(activity, child.get(childPosition),
                        Toast.LENGTH_SHORT).show();
            }
        });

        return convertView;
    }

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

        if (convertView == null) {
            convertView = inflater.inflate(R.layout.child, null);
        }

        ((CheckedTextView) convertView).setText(parentItems.get(groupPosition));
        ((CheckedTextView) convertView).setChecked(isExpanded);


        return convertView;
    }


    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return null;
    }

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

    @Override
    public int getChildrenCount(int groupPosition) {
        return ((ArrayList<String>) childtems.get(groupPosition)).size();
    }

    @Override
    public Object getGroup(int groupPosition) {
        return null;
    }

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

    @Override
    public void onGroupCollapsed(int groupPosition) {
        super.onGroupCollapsed(groupPosition);
    }

    @Override
    public void onGroupExpanded(int groupPosition) {
        super.onGroupExpanded(groupPosition);
    }

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

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

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
    }
}
public类LetestNews扩展了ExpandableListActivity{
private ArrayList parentItems=new ArrayList();
private ArrayList childItems=new ArrayList();
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//这并不是必需的,因为ExpandableListActivity包含ExpandableList
//setContentView(R.layout.main);
ExpandableListView expandableList=getExpandableListView();//您可以使用(ExpandableListView)findViewById(R.id.list)
可扩展列表。setDividerHeight(2);
expandableList.setGroupIndicator(空);
可扩展列表。可设置可点击(true);
setGroupParents();
setChildData();
ExpandableAdapter=新的ExpandableAdapter(父项、子项);
setInflater((LayoutInflater)getSystemService(Context.LAYOUT\u充气器\u服务),这个;
expandableList.setAdapter(适配器);
//setOnChildClickListener(这个);
expandableList.setOnChildClickListener(新的ExpandableListView.OnChildClickListener(){
公共布尔onChildClick(ExpandableListView父视图、视图v、int-groupPosition、int-childPosition、长id){
/*您必须使用视图v,按id查找视图并按如下方式提取文本*/
Toast.makeText(getBaseContext(),“Shaan是一只猴子”,
吐司。长度(短)。show();
return true;//我错过了这个
}
});
}
public void setGroupParents(){
试一试{
FileInputStream newsIn=openFileInput(“news.txt”);
字符串newsObj=“”;
字符串objEnc=“”;
Gson Gson=新的Gson();
BufferedReader inputNews=新的BufferedReader(新的InputStreamReader(newsIn,“UTF-8”);
StringBuilder sbuilderNews=新建StringBuilder();
newsObj=inputNews.readLine();
while(newsObj!=null){
sbuilderNews.append(newsObj);
newsObj=inputNews.readLine();
if(newsObj!=null){
//sbuilder.append(“\n”);
}
}
newsIn.close();
newsObj=sbuilderNews.toString();
SubredditNews objNews=gson.fromJson(newsObj,SubredditNews.class);
ArrayListsubredditObjects=objNews.subreddits;
对于(int i=0;i