解决方案 »
- 求帮忙 感觉自己用的和教学视频里的不一样啊
- 急~~~~~~~~含有对话框的源码,只要打开过res里的文件,编译就出错
- 急求,点击GridView里的图片,将该应用程序的背景换了,怎么做
- 关于广告提供商,除了有米,adTouch啥的,还有什么推荐
- android关于自动生成的ID
- res/menu/menu.xml创建导致MyEclipes无响应
- android面试
- 下载到手机内存中的文件无法读取
- 两个ui 做了一个星期没有做出来。求大神指点一二了
- 如何判断手机是横着还是竖着拿的
- 继承OnClickListener 为什么会出错 改为android.view.View.OnClickListener就没问题了
- Android通讯录
我在fragment_main.xml文件中定义了btnOpen(我用fragment_main.xml作布局文件)
<Button
android:id="@+id/btnOpen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="open" />
改了以后,直接报错
提示OnClickListener cannot be resolved a type
btnOpen.setOnClickListener(new View.OnClickListener()
package com.example.study;import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;
import android.widget.ToggleButton;public class MainActivity extends ActionBarActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
Button btnOpen=(Button)MainActivity.this.findViewById(R.id.btnOpen);
btnOpen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//DisplayToast("You have Clicked the Open button");
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @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();
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 { public PlaceholderFragment() {
} @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
return rootView;
}
}
}
logcat日志如下
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
我原来的id为btnOpen的按钮是定义在fragment_main.xml中,所以程序一直都报错,估计是找不到,后来我在activity_main.xml中也加入个id为btnOpen的按钮,就正常运行了。这又是我另外个一直没搞明白的问题,avtivity_main.xml和fragment_main.xml两个文件到底啥区别,我试着在两个文件中都加入元素,会重叠着在布局中显示。
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}你这里是不是继承了父类ActionBarActivity 的东西,造成的空指针啊,你把父类也贴出来看看呗
那我在手机开发中定义布局一般还是用Fragment吗?但就会出现拥findViewById找不到控件的情况,如果用activity就能找到。
不知道还有没有其他不一样的情况。
activity_main.xml 和 fragment_main.xml.在MainActivity.java中执行Button btnOpen=(Button)findViewById(R.id.btnOpen) 这肯定btnOpen为null,因为此时findViewById是在activity_main.xml文件中找的,当然不存在。应改为:
在PlaceholderFragment.java文件的onCreateView() 方法中 执行如下:
Button btnOpen=(Button)rootView.findViewById(R.id.btnOpen);
btnOpen.setOnClickListener(new View.OnClickListener(){
....
});这样做findViewById是在rootView中找的。
你这就是坑爹,setcontent 用的布局里都没有那个控件,肯定报空指针啊
哦,原来如此,谢谢
activity_main.xml 和 fragment_main.xml这两个布局文件主要区别是什么呢?我设计布局在哪个文件里比较好呢,还是说随便哪个都可以
找了下,src目录下只有MainActivity.java文件,没有PlaceholderFragment.java,请问这文件在哪个目录下呢
哦,原来如此,谢谢
activity_main.xml 和 fragment_main.xml这两个布局文件主要区别是什么呢?我设计布局在哪个文件里比较好呢,还是说随便哪个都可以这
你就没弄明白fragment怎么用、干什么用,百度下fragment用法吧!
找了下,src目录下只有MainActivity.java文件,没有PlaceholderFragment.java,请问这文件在哪个目录下呢
com.example.study.MainActivity.java中的静态内部类PlaceholderFragment
那我在手机开发中定义布局一般还是用Fragment吗?但就会出现拥findViewById找不到控件的情况,如果用activity就能找到。
不知道还有没有其他不一样的情况。
楼主呀大哥呀,你在Activity在用findViewByID()查找的控件在fragment_main.xml中都没有定义当然会出错了
哦,原来如此,谢谢
activity_main.xml 和 fragment_main.xml这两个布局文件主要区别是什么呢?我设计布局在哪个文件里比较好呢,还是说随便哪个都可以
他们两其实没有区别呀
那我在手机开发中定义布局一般还是用Fragment吗?但就会出现拥findViewById找不到控件的情况,如果用activity就能找到。
不知道还有没有其他不一样的情况。
楼主呀大哥呀,你在Activity在用findViewByID()查找的控件在fragment_main.xml中都没有定义当然会出错了我尝试的结果是在fragment_main.xml中定义找不到,但在Activity_main.xml中定义能找到
哦,原来如此,谢谢
activity_main.xml 和 fragment_main.xml这两个布局文件主要区别是什么呢?我设计布局在哪个文件里比较好呢,还是说随便哪个都可以这
你就没弄明白fragment怎么用、干什么用,百度下fragment用法吧!坑爹的电子书,第一章完直接到第四章,第二章fragment的介绍我完全没看到,呵呵,买了纸质版的才明白,谢谢了,结贴啦