java切换卡片_Java

源码片段

public class MainActivity extends FragmentActivity implements OnCardClickListener{

List list;

private TestFragment frag;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initUI();

}

private void initUI() {

CardView cardView = (CardView) findViewById(R.id.cardView1);

cardView.setOnCardClickListener(this);

cardView.setItemSpace(Utils.convertDpToPixelInt(this, 20));

MyCardAdapter adapter = new MyCardAdapter(this);

adapter.addAll(initData());

cardView.setAdapter(adapter);

FragmentManager manager = getSupportFragmentManager();

frag = new TestFragment();

manager.beginTransaction().add(R.id.contentView, frag).commit();

}

@Override

public void onCardClick(final View view, final int position) {

Toast.makeText(MainActivity.this, position + "", Toast.LENGTH_SHORT).show();

Bundle bundle = new Bundle();

bundle.putString("text", list.get(position%list.size()));

frag.show(view,bundle);

}

private List initData() {

list = new ArrayList();

list.add("a");

list.add("b");

list.add("c");

list.add("d");

list.add("e");

list.add("f");

list.add("g");

return list;

}

public class MyCardAdapter extends CardAdapter{

public MyCardAdapter(Context context) {

super(context);

}

@Override

public int getCount() {

return Integer.MAX_VALUE;

}

@Override

protected View getCardView(int position,

View convertView, ViewGroup parent) {

if(convertView == null) {

LayoutInflater inflater = LayoutInflater.from(MainActivity.this);

convertView = inflater.inflate(R.layout.item_layout, parent, false);

}

TextView tv = (TextView) convertView.findViewById(R.id.textView1);

String text = getItem(position%list.size());

tv.setText(text);

return convertView;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java中使用CardLayout切换卡片,您需要使用以下步骤: 1. 创建一个CardLayout对象。 ``` CardLayout cardLayout = new CardLayout(); ``` 2. 将CardLayout对象设置为容器的布局管理器。 ``` container.setLayout(cardLayout); ``` 3. 添加每个卡片作为一个组件,并使用字符串标识每个卡片。 ``` container.add(component1, "card1"); container.add(component2, "card2"); ``` 4. 要切换到另一个卡片,请调用CardLayout对象的show()方法,并传递该卡片的字符串标识。 ``` cardLayout.show(container, "card2"); ``` 以下是一个完整的示例代码,演示如何使用CardLayout切换卡片: ``` import java.awt.*; import java.awt.event.*; import javax.swing.*; public class CardLayoutDemo extends JFrame implements ActionListener { private JPanel cards; public CardLayoutDemo() { setTitle("CardLayout示例"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建卡片 JPanel card1 = new JPanel(); card1.add(new JLabel("这是第1个卡片")); JPanel card2 = new JPanel(); card2.add(new JLabel("这是第2个卡片")); // 创建容器并设置布局管理器 cards = new JPanel(new CardLayout()); cards.add(card1, "card1"); cards.add(card2, "card2"); // 创建按钮并添加监听器 JButton button1 = new JButton("显示第1个卡片"); button1.addActionListener(this); JButton button2 = new JButton("显示第2个卡片"); button2.addActionListener(this); // 将卡片和按钮添加到窗口中 Container contentPane = getContentPane(); contentPane.add(cards, BorderLayout.CENTER); contentPane.add(button1, BorderLayout.NORTH); contentPane.add(button2, BorderLayout.SOUTH); pack(); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("显示第1个卡片")) { CardLayout cardLayout = (CardLayout) cards.getLayout(); cardLayout.show(cards, "card1"); } else if (e.getActionCommand().equals("显示第2个卡片")) { CardLayout cardLayout = (CardLayout) cards.getLayout(); cardLayout.show(cards, "card2"); } } public static void main(String[] args) { new CardLayoutDemo(); } } ``` 在这个示例中,我们创建了两个卡片,并使用字符串“card1”和“card2”标识它们。我们将这些卡片添加到一个带有CardLayout的JPanel中,并将该JPanel添加到窗口中。我们还创建了两个按钮,分别用于在卡片之间切换。当用户单击按钮时,我们使用CardLayout对象的show()方法切换到另一个卡片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值