Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在列表视图中打开活动数组类名_Java_Android - Fatal编程技术网

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

我在窗口中自动生成了n个类项,如java,我想在我的应用程序中使用这个类,如何在列表视图中按名称打开类活动?安卓可以通过实现来实现这一点

  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是单击项的位置