【问题标题】:When item is checked on listview start new activity当在列表视图上选中项目时开始新活动
【发布时间】:2018-03-21 19:27:16
【问题描述】:

我有一个带有列表视图的活动,最小视图在每一行都有一些检查选项。

我想在我的代码中添加在选中复选框时启动活动的可能性

我该怎么做?

提前致谢!!

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_available_rides);

    // Get the Intent that started this activity
    Intent intent = getIntent();
    String messageTime = intent.getStringExtra(DisplayMessageActivity.EXTRA_MESSAGE);
    String messageDep = intent.getStringExtra(DisplayMessageActivity.EXTRA_MESSAGE1);
    String messageArr = intent.getStringExtra(DisplayMessageActivity.EXTRA_MESSAGE2);
    String messageUser = intent.getStringExtra(DisplayMessageActivity.EXTRA_MESSAGE6);

    // Capture the layout's TextView and set the string as its text
    TextView textView1 = findViewById(R.id.textView26);
    textView1.setText(messageTime);
    TextView textView2 = findViewById(R.id.textView2);
    textView2.setText(messageDep);
    TextView textView3 = findViewById(R.id.textView4);
    textView3.setText(messageArr);
    TextView textView4 = findViewById(R.id.textView30);
    textView4.setText(messageUser);


    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference tripsRef = rootRef.child("Trips");
    ValueEventListener valueEventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            List<String> listTime = new ArrayList<String>();
            ArrayAdapter adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_checked, listTime);
            ListView Time = (ListView) findViewById(R.id.Listtime);
            for (DataSnapshot ds : dataSnapshot.getChildren()) {
                String arrival = ds.child("Arrival").getValue(String.class);
                String departure = ds.child("Departure").getValue(String.class);
                String time = ds.child("Time").getValue(String.class);
                String trips = TextUtils.join("    |    ", new String[]{time, departure});
                String Trips = TextUtils.join(" ---> ", new String[]{trips, arrival});
                listTime.add(Trips);
                Time.setAdapter(adapter);

            }

        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    };
    tripsRef.addListenerForSingleValueEvent(valueEventListener);

}

【问题讨论】:

    标签: android listview android-studio


    【解决方案1】:

    之后 Time.setAdapter(适配器);... 把这个:

     Time.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                //you can start your activity here
            }
        });
    

    如果您的列表中正是您想要的复选框,您将不得不为您的 listView 使用自定义适合

    【讨论】:

      【解决方案2】:

      实现 OnItemClickListener 方法。您可以定义单击每个项目时应执行的操作。

      【讨论】:

        【解决方案3】:

        用于开始一个新的活动并传递一些内容

        Time.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Intent intent = new Intent(MainActivity.this, NewActivity.class);
                intent.putExtra("time", listTime.get(i));
                startActivity(intent);
            }
        });
        

        【讨论】:

        • 嗨泰罗!是intent.putExtra("时间", listTime.get(i));用于传输表格视图中特定行中的数据的命令?
        • 一旦你有了被点击的位置,你可以通过将对象插入到一个意图中来抓取对象并移动到另一个活动,这只是一个例子,重要的是你在适配器中有点击的位置并且您可以使用 listTime.get(i); 点击对象
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多