环境:
我:Android studio3.5版本
书:Android studio2.2版本
问题及解决:
(1)在创建自定义标题栏控件时,没有明确代码写在哪个文件里。
解决方案:
在图示位置新建一个TitleLayout.java,
(2)出现如图问题
问题详情:
Missing package statement:‘com.example.uicustomviews’
Inspection info:Detects package statements that do not correspond to the project directory structure and reports classes without package statements.
翻译:
缺少包语句:“com.example.uicustomviews”
检查信息:检测与项目目录结构不对应的包语句,并报告没有包语句的类。
相应代码:
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.LinearLayout;
import com.example.uicustomviews.R;
public class TitleLayout extends LinearLayout {
public TitleLayout(Context context, AttributeSet attrs){
super(context,attrs);
LayoutInflater.from(context).inflate(R.layout.title,this);
}
}
解决:
在TitleLayout.java代码最前面加上包语句
package com.example.uicustomviews;
//com.example.uicustomviews是我自己的包名,你根据自己的包名去更改
另附上TitleLayout.java完整代码:
package com.example.uicustomviews;
import android.app.Activity;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
//创建自定义控件
//新建TitleLayout继承自LinearLayout,让他成为我们自定义的标题栏控件
public class TitleLayout extends LinearLayout {
public TitleLayout(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.title,this);
//from():通过LayoutInflater的from()方法可以构建出一个LayoutInflater对象
//inflate():调用inflate()方法可以动态加载一个布局文件,inflate()方法接收两个参数
//1.要加载的布局文件的id,这里我们传入R.layout.title
//2.给加载好的布局在添加一个父布局,这里我们制定为TitleLayout,于是直接传入this
Button titleBack = (Button) findViewById(R.id.title_back);
Button titleEdit = (Button) findViewById(R.id.title_edit);
titleBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((Activity) getContext()).finish();
}
});
titleEdit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(),"You Clicked Edit button!",
Toast.LENGTH_SHORT).show();
}
});
}
}