尝试将 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
不只是带有空白 TextView
s
的透明背景
由于您没有将 context 传递给 intent,因此您需要传递 Context 不是 working.In 适配器。
试试下面的代码:
当我单击 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
不只是带有空白 TextView
s
由于您没有将 context 传递给 intent,因此您需要传递 Context 不是 working.In 适配器。
试试下面的代码: