尝试将 TextView 用作按钮以移动到 ExpandableListView 中的另一个 activity

Trying to use TextView as a button to move to another activity in ExpendableListView

当我单击 ExpendableListView 的下拉列表值时,我想转到我的 secondActivity。我已经看到显示 toast 消息的示例,但是 none 移动到另一个 activity.I 对 android.please 来说还很陌生,请告诉我我该怎么做。我已经提前尝试了 intent class also.thanks。

这是我的 secondActivity.java 文件

package com.example.android.infoline;  

import android.support.v7.app.AppCompatActivity;  
import android.os.Bundle;  

public class SecondActivity extends AppCompatActivity {  

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

}

secondActivity.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SecondActivity">

    <TextView
        android:id="@+id/txtCancer1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="20dp"
        android:paddingLeft="5dp"
        android:paddingTop="5dp"
        android:textAppearance="@style/TextAppearance.AppCompat.Large"
        android:theme="@style/AppTheme" />

    <TextView
        android:id="@+id/txtCancer2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/txtCancer1"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"
        android:paddingLeft="5dp"
        android:paddingTop="5dp"
        android:textAppearance="@style/TextAppearance.AppCompat.Tooltip"
        android:theme="@style/AppTheme" />

</RelativeLayout>

ExpandableListViewAdapter.java 文件

package com.example.android.infoline;

import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class ExpandableListViewAdapter extends BaseExpandableListAdapter implements View.OnClickListener{


    String[] MainTopics = {"Health", "Network","Bank"};
    String[][] subTopics = {{"Cancer","Depression","Diabeties","Rape","Road Accident"
    ,"HIV", "Periods"},{"Vodaphone","Airtel"},{"SBI","PNB","HDFC"}};

    Context context;

    public ExpandableListViewAdapter(Context context){
        this.context = context;
    }
    @Override
    public int getGroupCount() {
        return MainTopics.length;
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        return subTopics[groupPosition].length;
    }

    @Override
    public Object getGroup(int groupPosition) {
        return MainTopics[groupPosition];
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {

        return subTopics[groupPosition][childPosition];
    }

    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }

    @Override
    public boolean hasStableIds() {
        return false;
    }

    //to return the main topics
    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View view, ViewGroup parent) {
        TextView txtview = new TextView(context);
        txtview.setText(MainTopics[groupPosition]);
        txtview.setPadding(100,0,0,0);
        txtview.setTextColor(Color.GREEN);
        txtview.setTextSize(40);
        return txtview;
    }

    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View view, ViewGroup parent) {

        TextView txtview = new TextView(context);
        txtview.setText(subTopics[groupPosition][childPosition]);
        txtview.setPadding(100,0,0,0);
        txtview.setTextColor(Color.CYAN);
        txtview.setTextSize(40);
        txtview.setOnClickListener(this);
        //txtview.setOnClickListener(Toast.makeText(context,txtview.getText().toString(),Toast.LENGTH_SHORT).show(););

        return txtview;
    }

    @Override
    public void onClick(View v) {
        Intent intent = new Intent();
        intent.setClass(MainActivity.this,SecondActivity.class);
        startActivity(intent);
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return false;
    }
}

在您的 onClick(View v) 方法中,写入:

Intent intent = new Intent(context, SecondActivity.class);
startActivity(intent);

如果要从单击的按钮中检索文本,请写:

// optionally, check if the view is an instance of TextView
String text = ((TextView) v).getText().toString();

如果要将字符串传递给SecondActivity,写:

intent.putExtra(SOME_CONSTANT, text);

并在 SecondActivity 中检索它,写:

Intent intent = getIntent();
String text = intent.getStringExtra(SOME_CONSTANT);

最后一件事:确保您的 SecondActivity 不只是带有空白 TextViews

的透明背景

由于您没有将 context 传递给 intent,因此您需要传递 Context 不是 working.In 适配器。

试试下面的代码: