Android片段:找不到ID为0x7f040034的视图 [英] Android Fragment : No view found for id 0x7f040034

查看:64
本文介绍了Android片段:找不到ID为0x7f040034的视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要做的就是将SherlockFragmentActivity连接到Sherlock Fragment,并且出现错误消息:Android Fragment:找不到ID为0x7f040034的视图.

All I am trying to do is connect SherlockFragmentActivity to Sherlock Fragment and I am getting the Error which states: Android Fragment : No view found for id 0x7f040034.

search.java

search.java

package com.example.festipedia_logo;

import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.example.festipedia_logo.R.style;

import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.view.ContextThemeWrapper;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;



public class search extends SherlockFragmentActivity {
    private LinearLayout mLayout;
    private Spinner search;
    private Button submit;
    private Spinner diffcat=null;
    private EditText query=null;
    ArrayAdapter<String> adapter,adapter1;
    String[] searchstr,cat;
    String sear,sear1,querystr;
    Spinner spinner;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getActionBar().setDisplayShowTitleEnabled(false);
        getActionBar().setDisplayUseLogoEnabled(false);
        getActionBar().setDisplayShowCustomEnabled(true);
        getActionBar().setDisplayShowHomeEnabled(false);
        //getSupportActionBar().setIcon(R.drawable.fest);
        //getSupportActionBar().setLogo(R.drawable.fest);
        Drawable d=getResources().getDrawable(R.drawable.action1);
        getActionBar().setBackgroundDrawable(d);

        setContentView(R.layout.searchact);
        mLayout=(LinearLayout)findViewById(R.id.linearsearch1);
        search=(Spinner)findViewById(R.id.spinner1);
        //spinner = (Spinner)this.findViewById(R.id.spinner1);
         searchstr = new String[] { "Category", "Location",
                    "College Name","Fest Name"};

         adapter = new ArrayAdapter<String>(this,
                  android.R.layout.simple_spinner_dropdown_item,searchstr
                  );
         search.setAdapter(adapter);
        // spinner.setOnClickListener(onClick());
        //mButton= (Button)findViewById(R.id.button1);

        /*TextView textView=new TextView(this);
        textView.setText("Hello");*/
         search.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
                    sear=search.getSelectedItem().toString();
                    if(sear!="Category")
                        {
                            if(query==null)
                            {
                                if(diffcat!=null)
                                {   mLayout.removeView(diffcat);
                                    //diffcat.setVisibility(android.view.View.GONE);
                                    diffcat=null;
                                    mLayout.removeView(submit);
                                    //submit.setVisibility(android.view.View.GONE);
                                    submit=null;
                                }
                                mLayout.addView(createNewControlView());
                                mLayout.addView(createNewButtonView());
                                submit.setOnClickListener(onClick());
                            }
                        }
                    else
                        {
                            if(diffcat==null)
                            {
                                if(query!=null)
                                {
                                    //mLayout.removeView(query);
                                    mLayout.removeView(query);
                                    query=null;
                                    mLayout.removeView(submit);
                                    submit=null;
                                }
                                mLayout.addView(createNewSpinnerView());
                                mLayout.addView(createNewButtonView());
                                submit.setOnClickListener(onClick());
                            }
                        }
                } 

                public void onNothingSelected(AdapterView<?> adapterView) {
                    return;
                } 
            }); 
    }
    private OnClickListener onClick(){
        return new OnClickListener(){
            @Override
            public void onClick(View v){
                if(diffcat!=null){
                    sear1=diffcat.getSelectedItem().toString();
                }
                genquery();
                final FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
                ft.replace(R.id.content_frame,new Searchresult(querystr) , "Fest Content"); 
                ft.commit();
                }

        };
    }
    private EditText createNewControlView(){
        final LayoutParams lparams=new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
        //query=new EditText(this,null,R.style.editTextClassic);
        //ContextThemeWrapper newContext = new ContextThemeWrapper(this, R.style.editTextClassic);
        query=new EditText(this);
        query.setLayoutParams(lparams);
        //textView.setText("New text:"+text);
        return query;

    }
    private Button createNewButtonView(){
        final LayoutParams lparams=new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
        submit=new Button(this);
        submit.setLayoutParams(lparams);
        submit.setText("Search");
        return submit;

    }
    private Spinner createNewSpinnerView(){
        final LayoutParams lparams=new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
        diffcat=new Spinner(this);
        cat = new String[] { "Cultural", "Technical",
                "Sports"};

     adapter1 = new ArrayAdapter<String>(this,
              android.R.layout.simple_spinner_dropdown_item,cat
              );
     diffcat.setAdapter(adapter1);

        diffcat.setLayoutParams(lparams);
        //textView.setText("New text:"+text);
        return diffcat;

    }
    private void genquery(){
        if(sear=="Category")
        {
            querystr="select * from festipedia where category = '" + sear1+"'";
        }
        else
        {
            querystr="select * from festipedia where"+sear+" = '" +query.getText() +"'";
        }

    }
}

Logcat

03-31 17:51:30.600: E/ViewRootImpl(32546): sendUserActionEvent() mView == null
03-31 17:51:31.295: E/FragmentManager(32546): No view found for id 0x7f040034 (com.example.festipedia_logo:id/content_frame) for fragment Searchresult{44d17a28 #0 id=0x7f040034 Fest Content}
03-31 17:51:31.295: E/FragmentManager(32546): Activity state:
03-31 17:51:31.310: E/AndroidRuntime(32546): FATAL EXCEPTION: main
03-31 17:51:31.310: E/AndroidRuntime(32546): Process: com.example.festipedia_logo, PID: 32546
03-31 17:51:31.310: E/AndroidRuntime(32546): java.lang.IllegalArgumentException: No view found for id 0x7f040034 (com.example.festipedia_logo:id/content_frame) for fragment Searchresult{44d17a28 #0 id=0x7f040034 Fest Content}
03-31 17:51:31.310: E/AndroidRuntime(32546):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:919)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at android.os.Handler.handleCallback(Handler.java:733)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at android.os.Handler.dispatchMessage(Handler.java:95)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at android.os.Looper.loop(Looper.java:157)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at android.app.ActivityThread.main(ActivityThread.java:5356)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at java.lang.reflect.Method.invokeNative(Native Method)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at java.lang.reflect.Method.invoke(Method.java:515)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
03-31 17:51:31.310: E/AndroidRuntime(32546):    at dalvik.system.NativeStart.main(Native Method)

我该如何解决此错误...

How can I solve this error...

推荐答案

java.lang.IllegalArgumentException:找不到ID为0x7f040034的视图(com.example.festipedia_logo:id/content_frame)片段Searchresult {44d17a28#0 id = 0x7f040034节日内容}

java.lang.IllegalArgumentException: No view found for id 0x7f040034 (com.example.festipedia_logo:id/content_frame) for fragment Searchresult{44d17a28 #0 id=0x7f040034 Fest Content}

您的 searchact.xml中没有ID为 content_frame ViewGroup .

You do not have a ViewGroup with the id content_frame in your searchact.xml.

通常是 FrameLayout .

你有

ft.replace(R.id.content_frame,new Searchresult(querystr) , "Fest Content"); 

因此,您正在将片段替换/添加到作为ViewGroup的容器中.因此,您需要在xml中添加相同的内容.

So you are replacing/adding fragment to the container which is a ViewGroup. So you need to have the same in the xml.

在xml中保存

   <FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
  </FrameLayout>

这篇关于Android片段:找不到ID为0x7f040034的视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆