Java 如何在列表视图中打开活动数组类名
我在窗口中自动生成了n个类项,如java,我想在我的应用程序中使用这个类,如何在列表视图中按名称打开类活动?安卓可以通过实现来实现这一点Java 如何在列表视图中打开活动数组类名,java,android,Java,Android,我在窗口中自动生成了n个类项,如java,我想在我的应用程序中使用这个类,如何在列表视图中按名称打开类活动?安卓可以通过实现来实现这一点 import android.content.Context; import android.content.Intent; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import android.view.Layou
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private static final Class[] CLASSES = new Class[]{
a.class,
a1.class,
a2.class,
a3.class,
a4.class,
a5.class,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = findViewById(R.id.list_view);
MyArrayAdapter adapter = new MyArrayAdapter(this, android.R.layout.simple_list_item_1, CLASSES);
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
}
}
是的,这很容易
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
private static final Class[] CLASSES = new Class[]{
a.class,
a1.class,
a2.class,
a3.class,
a4.class,
a5.class
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = findViewById(R.id.list_view);
MyArrayAdapter adapter = new MyArrayAdapter(this, android.R.layout.simple_list_item_1, CLASSES);
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Class clicked = CLASSES[position];
startActivity(new Intent(this, clicked));
}
private static class MyArrayAdapter extends ArrayAdapter<Class> {
private Context mContext;
private Class[] mClasses;
private MyArrayAdapter(Context context, int resource, Class[] objects) {
super(context, resource, objects);
mContext = context;
mClasses = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(android.R.layout.simple_list_item_1, null);
}
((TextView) view.findViewById(android.R.id.text1)).setText(mClasses[position].getSimpleName());
return view;
}
}
}
导入android.content.Context;
导入android.content.Intent;
导入android.os.Bundle;
导入androidx.appcompat.app.appcompat活动;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
公共类MainActivity扩展AppCompativeActivity实现AdapterView.OnItemClickListener{
私有静态最终类[]类=新类[]{
a、 类,
a1.2级,
a2.2级,
a3.2级,
a4.2级,
a5.等级
};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView ListView=findViewById(R.id.list\u视图);
MyArrayAdapter=新的MyArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,类);
setAdapter(适配器);
setOnItemClickListener(this);
}
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
单击的类=类[位置];
startActivity(新意图(此,点击));
}
私有静态类MyArrayAdapter扩展了ArrayAdapter{
私有上下文;
私有类[]mClasses;
私有MyArrayAdapter(上下文上下文、int资源、类[]对象){
超级(上下文、资源、对象);
mContext=上下文;
mClasses=对象;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=转换视图;
if(convertView==null){
LayoutInflater充气器=(LayoutInflater)mContext.getSystemService(布局充气器服务);
视图=充气机。充气(android.R.layout.simple\u list\u item\u 1,空);
}
((TextView)view.findviewbyd(android.R.id.text1)).setText(mClasses[position].getSimpleName());
返回视图;
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
style="@style/CustomRelativeLayout"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/logo"
style="@style/CustomLogoImageView"
android:contentDescription="@string/app_name"/>
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/logo"
android:scrollbars="none"/>
</RelativeLayout>
是的很容易
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
private static final Class[] CLASSES = new Class[]{
a.class,
a1.class,
a2.class,
a3.class,
a4.class,
a5.class
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = findViewById(R.id.list_view);
MyArrayAdapter adapter = new MyArrayAdapter(this, android.R.layout.simple_list_item_1, CLASSES);
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Class clicked = CLASSES[position];
startActivity(new Intent(this, clicked));
}
private static class MyArrayAdapter extends ArrayAdapter<Class> {
private Context mContext;
private Class[] mClasses;
private MyArrayAdapter(Context context, int resource, Class[] objects) {
super(context, resource, objects);
mContext = context;
mClasses = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(android.R.layout.simple_list_item_1, null);
}
((TextView) view.findViewById(android.R.id.text1)).setText(mClasses[position].getSimpleName());
return view;
}
}
}
导入android.content.Context;
导入android.content.Intent;
导入android.os.Bundle;
导入androidx.appcompat.app.appcompat活动;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
公共类MainActivity扩展AppCompativeActivity实现AdapterView.OnItemClickListener{
私有静态最终类[]类=新类[]{
a、 类,
a1.2级,
a2.2级,
a3.2级,
a4.2级,
a5.等级
};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView ListView=findViewById(R.id.list\u视图);
MyArrayAdapter=新的MyArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,类);
setAdapter(适配器);
setOnItemClickListener(this);
}
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
单击的类=类[位置];
startActivity(新意图(此,点击));
}
私有静态类MyArrayAdapter扩展了ArrayAdapter{
私有上下文;
私有类[]mClasses;
私有MyArrayAdapter(上下文上下文、int资源、类[]对象){
超级(上下文、资源、对象);
mContext=上下文;
mClasses=对象;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=转换视图;
if(convertView==null){
LayoutInflater充气器=(LayoutInflater)mContext.getSystemService(布局充气器服务);
视图=充气机。充气(android.R.layout.simple\u list\u item\u 1,空);
}
((TextView)view.findviewbyd(android.R.id.text1)).setText(mClasses[position].getSimpleName());
返回视图;
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
style="@style/CustomRelativeLayout"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/logo"
style="@style/CustomLogoImageView"
android:contentDescription="@string/app_name"/>
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/logo"
android:scrollbars="none"/>
</RelativeLayout>
使用您在适配器中传递的
上下文
,并调用Context.startActivity(新意图(上下文,类名))
如果要从适配器内启动
活动
,则需要在适配器项布局文件中的按钮上设置onClickListener()
。如果可以选择整个列表项,则可以在活动中实现OnItemClickListener
,并在单击的位置启动索引的活动,只需使用startActivity(新意图(此,类[i]))
其中i是单击项目的位置。使用您在适配器中传递的上下文
,并调用上下文。startActivity(新意图(上下文,类名))
如果要从适配器内启动活动
,则需要在适配器项布局文件中的按钮上设置onClickListener()
。如果可以选择整个列表项,则可以在活动中实现OnItemClickListener
,并在单击的位置启动索引的活动,只需使用startActivity(新意图(此,类[i])
,其中i是单击项的位置