ListView传值给Fragment

第一个类MainActivity

import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {

    private DrawerLayout dwl;
    private ListView lv;
    List<String> list=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //找到控件
        dwl = findViewById(R.id.dwl);
        lv = findViewById(R.id.lv);
        //初始化数据
        init();
        //添加适配器
        MyAdapter my=new MyAdapter();
        lv.setAdapter(my);
        //ListView的点击事件
        lv.setOnItemClickListener(new MyOnItem());
        //Toast.makeText(MainActivity.this,"哈哈",Toast.LENGTH_LONG).show();

    }
    //数据
    public void init(){
        list.add(new String("关注"));
        list.add(new String("动态"));
        list.add(new String("热闻"));
        list.add(new String("设置"));
    }

    //适配器的类
    private class MyAdapter extends BaseAdapter{
        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int i) {
            return list.get(i);
        }

        @Override
        public long getItemId(int i) {
            return i;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            //优化
            if (view==null){
                //把布局文件转成View
                 view = View.inflate(MainActivity.this, R.layout.listview, null);
            }
            //找到控件
            TextView tv=view.findViewById(R.id.tv);
            //赋值
            tv.setText(list.get(i));

            return view;
        }
    }


    private class MyOnItem implements AdapterView.OnItemClickListener {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            //获取Fragment的实例
           Frag1 f1=new Frag1();
           //获取Bundle
           Bundle bundle=new Bundle();
           //给Bundle赋值
           bundle.putString("name",list.get(i));
           //往Fragment传值
           f1.setArguments(bundle);
           //开启一个事务并替换
           getSupportFragmentManager().beginTransaction().replace(R.id.fl,f1).commit();
           //点击关闭侧拉
           dwl.closeDrawer(lv);

        }
    }
}

第二个类Frag1(Fragment)
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class Frag1 extends Fragment{

    private TextView tv;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.f1, container, false);
        tv = view.findViewById(R.id.f1_tv);
        return view;
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        //获取传值过来的数据
        String name = getArguments().getString("name");
        //赋
        tv.setText(name);
    }

}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值