我定义了以下自定义对话框视图:
public class MyDialog extends Dialog {
public MyDialog(Context context) {
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.my_dialog);
getWindow().setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
}
}
Run Code Online (Sandbox Code Playgroud)
该对话框使用以下布局,其中仅包含"Dismiss Me"按钮:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" >
<Button
android:id="@+id/dismiss_btn"
android:layout_width="100dip"
android:layout_height="30dip"
android:layout_centerHorizontal="true"
android:text="Dismiss me"
android:textSize="8dip"
android:textColor="#ffffff" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我MainActivity显示一个按钮,triggerDialogBtn按下时将显示我的对话框.我还为dismiss_btn我的对话框上的按钮定义了一个处理程序方法,用于在按下时关闭我的对话框.
public class MainActivity extends Activity{
private Button triggerDialogBtn;
private MyDialog myDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//initialize my dialog
myDialog = new MyDialog(this);
//the …Run Code Online (Sandbox Code Playgroud) android android-widget android-manifest android-emulator android-layout
我正在编写一个工具来在DOCX文件中进行一些小文本替换,这是一种压缩格式.我的方法是ZipEntry使用a将原始文件中的条目内容复制到修改后的文件中ZipOutputStream.对于大多数DOCX文件,这种方法效果很好,但偶尔我会遇到ZipException有关我写的内容与其中包含的元信息ZipEntry(通常是压缩大小的差异)之间的差异的问题.
这是我用来复制内容的代码.为简洁起见,我删除了错误处理和文档处理; 到目前为止,我还没有遇到过文档条目的问题.
ZipFile original = new ZipFile(INPUT_FILENAME);
ZipOutputStream outputStream = new ZipOutputStream(new FileOutputStream(OUTPUT_FILE));
Enumeration entries = original.entries();
byte[] buffer = new byte[512];
while (entries.hasMoreElements()) {
ZipEntry entry = (ZipEntry)entries.nextElement();
if ("word/document.xml".equalsIgnoreCase(entry.getName())) {
//perform special processing
}
else{
outputStream.putNextEntry(entry);
InputStream in = original.getInputStream(entry);
while (0 < in.available()){
int read = in.read(buffer);
outputStream.write(buffer,0,read);
}
in.close();
}
outputStream.closeEntry();
}
outputStream.close();
Run Code Online (Sandbox Code Playgroud)
将ZipEntry对象直接复制ZipFile到另一个对象的正确或惯用方法是什么?