// 1. layout填充。
public View onCreateActionView()
{
// Inflate the action view to be shown on the action bar.
//从context拉取填充器,因为填充需要上下文信息。
LayoutInflater layoutInflater = LayoutInflater.from(mContext);
View view = layoutInflater.inflate(R.layout.action_provider, null);
ImageButton button = (ImageButton) view.findViewById(R.id.button);
button.setOnClickListener( new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// Do something...
}
} );
//然后返回view给对象显示。
return view;
}
// Fragment中的布局回调函数,这里没用inflater进行填充,
// 而是只要返回一个View就是了。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
if (container == null) {
// We have different layouts, and in one of them this
// fragment's containing frame doesn't exist. The fragment
// may still be created from its saved state, but there is
// no reason to try to create its view hierarchy because it
// won't be displayed. Note this is not needed -- we could
// just run the code below, where we would create and return
// the view hierarchy; it would just never be used.
return null;
}
ScrollView scroller = new ScrollView(getActivity());
TextView text = new TextView(getActivity());
int padding = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
4, getActivity().getResources().getDisplayMetrics());
text.setPadding(padding, padding, padding, padding);
scroller.addView(text);
text.setText(Shakespeare.DIALOGUE[getShownIndex()]);
return scroller;
}
//注意这样得代码容易出错,导致死循环。
int len = 0;
byte[] dataBuffer = new byte[ 1024 ];
while ( true )
{
//此处如果inS到达了结尾,那么就会是0buffer,导致read一直返回0而没有返回结尾的-1,
//导致了死循环。
//byte[] dataBuffer = new byte[ inS.available() ];
len = inS.read( dataBuffer );
if( len == -1 )
{
break;
}
//这里需要显示的写入长度,否则可能写入脏数据。
outS.write( dataBuffer, 0, len );
}
安卓常用代码写法
最新推荐文章于 2023-08-18 14:52:09 发布