manin.xml 代码
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1"
tools:ignore="MissingConstraints">
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dip"
android:text="弹出选项卡" >
</Button>
</LinearLayout>
tab_view.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="600dp"
android:id="@+id/ly2"
android:orientation="vertical"
tools:ignore="MissingConstraints">
<LinearLayout
android:orientation="vertical"
android:id="@+id/ly1"
android:layout_width="match_parent"
android:layout_height="150dp"
tools:ignore="MissingConstraints">
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="条码"
android:imeOptions="actionNext"
android:inputType="text"
android:lines="1"
android:nextFocusForward="@+id/password"
android:singleLine="true">
</EditText>
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="密码"
android:inputType="textPassword" />
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="清理库存"></Button>
</LinearLayout>
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true">
<ListView
android:id="@+id/list_viewstockbill"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
</HorizontalScrollView>
</LinearLayout>
tab_list.xml
<LinearLayout
android:id="@+id/ly2"
android:padding="5dp"
android:layout_width="match_parent"
android:weightSum="5"
android:orientation="horizontal"
android:layout_height="wrap_content"
tools:ignore="MissingConstraints">
<TextView
android:id="@+id/wmb_BatchNo"
android:text="规格"
android:gravity="center"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"/>
<TextView
android:id="@+id/wti_Qty"
android:text="数量"
android:gravity="center"
android:layout_width="110dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"/>
</LinearLayout>
MainActivity代码
DialogStockBillAdapter adapter;
List<OutDeport> list;
ListView listView;
private void ValLoginWindow() {
final EditText one = findViewById(R.id.one);
final EditText two = findViewById(R.id.two);
try {
//加载ListView的内容
list = new ArrayList<>();
for (int i= 0 ;i < 3;i++){
OutDeport outDeport = new OutDeport();
outDeport.setWis_BatchNo("规格"+i);
outDeport.setWis_DateCode("数量"+i);
list.add(outDeport);
}
// 获取弹出页面
final View v = getLayoutInflater().inflate(R.layout.tab_view, null);
// 获取弹出页面的ListView
listView = v.findViewById(R.id.list_viewstockbill);
//内容填充
adapter = new DialogStockBillAdapter(this, R.layout.tab_list,list );
listView.setAdapter(adapter);
//子项点击监听
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final OutDeport outDeport = list.get(position);
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("提示:");
dialog.setMessage("是否删除?");
dialog.setCancelable(false);
dialog.setPositiveButton("是", new DialogInterface.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onClick(DialogInterface dialog, int which) {
//list.clear();
list.Remove(outDeport); //删除选中行
adapter.notifyDataSetChanged();
}
});
dialog.setNegativeButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
}
});
// 聚焦第一个文本框
EditText username = v.findViewById(R.id.username);
username.requestFocus();
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setView(v);
builder.setPositiveButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
});
builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//弹出框点击确定的处理
}
});
AlertDialog dialog = builder.create();
dialog.setOnKeyListener(keylistener); //弹出之后按键监听
dialog.setCancelable(false); // 触碰弹框外无反应
WindowManager.LayoutParams wlp = dialog.getWindow().getAttributes();
wlp.gravity = Gravity.TOP | Gravity.LEFT;
wlp.x = 10; //x轴起始位置
wlp.y = 10; //y轴起始位置
dialog.show();
dialog.getWindow().setLayout(400, 700); //整个弹出框大小设置
} catch (Exception e) {
e.printStackTrace();
}
}
//弹出框时检测返回键
private DialogInterface.OnKeyListener keylistener = new DialogInterface.OnKeyListener() {
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
return true;
} else {
return false;
}
}
};
DialogStockBillAdapter.class代码
package com.example.zicoxbluetoothprinterdocking;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import java.util.List;
public class DialogStockBillAdapter extends ArrayAdapter<OutDeport> {
private int resourceID;
private List<OutDeport> objects;
public DialogStockBillAdapter(Context context, int textViewResourceId, List<OutDeport> objects){
super(context,textViewResourceId,objects);
this.resourceID=textViewResourceId;
this.objects=objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
OutDeport production = getItem(position);
View view;
//ViewHolder viewHolder;
if(convertView == null){
view = LayoutInflater.from(getContext()).inflate(resourceID,parent,false);
// viewHolder = new ViewHolder();
}else{
view = convertView;
}
TextView wis_BatchNo = (TextView)view.findViewById(R.id.wis_BatchNo);
wis_BatchNo.setText(production.getWis_BatchNo());
TextView wis_DateCode = (TextView)view.findViewById(R.id.wis_DateCode);
wis_DateCode.setText(production.getWis_DateCode());
return view;
}
}