Main.xml构思布局
- 放1个垂直线性布局和fragment(碎片)
- 垂直线性布局里再放1个textview作为标题,1个listview作为选择列表
- 由于使用到了fragment,后面还需要通过自定义Myfragment来切换界面
bg.xml
- 布局为一个textview文本框即可,主要是显示左部listview的每一项标题
activity_fragrment.xml构思布局
- 总体是垂直线性布局
- 往里面添加1个垂直的线性布局,1个textview文本框
- 接着往垂直的线性布局里面添加1个imageview图片,1个button按钮
Myfragment.java
- 自定义Myfragment来实现切换界面的效果
- 并且要绑定 activity_fragrment.xml
public class Myfragment extends Fragment {
private Button btn;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.activity_fragrment, container, false);
btn = inflate.findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView txt1 = getActivity().findViewById(R.id.text2);
txt1.setText(txt1.getText().toString().substring(0,4));
txt1.setText(txt1.getText().toString()+"下单成功!");
Toast.makeText(getContext(),txt1.getText().toString(),Toast.LENGTH_SHORT).show();
}
});
return inflate;
}
}
Mainactivity.java
- 获取Listview控件,使用适配器绑定Listview
- 还需要创建自定义的Myfragment对象
public class MainActivity extends AppCompatActivity {
private ListView listview;
List<String> list=new ArrayList<>();
private ArrayAdapter<String> adapter;
String[] items = new String[]{"酒水饮料", "休闲零食", "方便速食", "糖巧饼干", "牛奶乳品", "冲调营养", "粮油调味", "个护清洁", "纸品洗涤", "日用百货"};
int images[] = new int[]{R.drawable.water,R.drawable.lingshi,R.drawable.sushi,R.drawable.tang,R.drawable.milk,R.drawable.chongtiao,R.drawable.tiaowei,R.drawable.qingjie,R.drawable.zhi,R.drawable.baihuo};
private Button btn;
private TextView txt2;
private Myfragment fragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
listview = (ListView) findViewById(R.id.list);
adapter =new ArrayAdapter<String>(MainActivity.this,R.layout.bg,items);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int i, long l) {
btn = (Button) findViewById(R.id.button);
btn.setEnabled(true);
FragmentManager fragmentManager = getSupportFragmentManager();
fragment = (Myfragment) fragmentManager.findFragmentById(R.id.ly_fragment);
ImageView image = fragment.getView().findViewById(R.id.image);
image.setImageResource(images[i]);
txt2 = (TextView) findViewById(R.id.text2);
txt2.setText(items[i]);
}
});
}catch (Exception ignore){
Toast.makeText(getApplicationContext(),"1111",Toast.LENGTH_SHORT).show();
}
}
}
设计完成效果图
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6155970341b5e00cf7741523a7874ac2.png)
- 点击 listview 上的酒水饮料可以实现界面切换,而且此时按钮恢复可以点击,底部提示语也更改为酒水饮料
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3b7f064ee6ffb9ce3b6e794ae797485e.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1ce364a29055affeb4a0afa426819c71.png)