新活动未打开



我是一名意大利学生,使用最新版本的Android Studio和Android API 26(Android Oreo(开发Android应用程序。

应用程序非常简单:
1。主要活动"MySchoolSyllabus":它显示了学校主题的列表,由放置在"res"项目文件夹.
2中的图像表示。第二个活动,"Materia"(意思是"主题"(:一旦用户单击主题图像,就需要打开此活动,显示另一个图像列表,以与上一个活动相同的方式表示该主题的主题.
3。最后一个活动"Argomento"(意思是"主题"(:用户点击主题图片后,需要打开此活动,使用 WebView 显示主题的课程(我会将所有课程存储在共享的 Google 云端硬盘帐户中(。

我使用 ItemAdapter 来创建主题和主题列表。 现在,我对Android编程不是那么专家,所以我没有编写所有代码...... 但是当我点击"我的学校教学大纲"活动中的图片时,第二个活动"材料"没有打开。

这就是我现在写的。

我该如何解决?

//我的学校教学大纲.java

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import java.util.ArrayList;
public class MySchoolSyllabus extends AppCompatActivity implements Item_Adapter.ItemListener {
Item_Adapter item_adapter;
ArrayList<Integer> pass = new ArrayList<>();
ArrayList<String> nome = new ArrayList<>();
ListView list;
void CaricaDati () {
nome.clear();
nome.add("Italiano");
nome.add("Matematica");
nome.add("Arte");
nome.add("Biologia");
nome.add("Chimica");
nome.add("Elettronica");
nome.add("Filosofia");
nome.add("Fisica");
nome.add("Geografia");
nome.add("Informatica");
nome.add("Inglese");
nome.add("Storia");
pass.clear();
pass.add(R.drawable.italiano_banner);
pass.add(R.drawable.matematica_banner);
pass.add(R.drawable.arte_banner);
pass.add(R.drawable.biologia_banner);
pass.add(R.drawable.chimica_banner);
pass.add(R.drawable.elettronica_banner);
pass.add(R.drawable.filosofia_banner);
pass.add(R.drawable.fisica_banner);
pass.add(R.drawable.geografia_banner);
pass.add(R.drawable.informatica_banner);
pass.add(R.drawable.inglese_banner);
pass.add(R.drawable.storia_banner);
item_adapter.notifyDataSetChanged();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_school_syllabus);
item_adapter = new Item_Adapter(this, R.layout.row, pass);
item_adapter.setItemListener(MySchoolSyllabus.this);
list = findViewById(R.id.lista);
list.setAdapter(item_adapter);
CaricaDati();
}
@Override
public void startNewIntent(int position) {
Intent materia = new Intent(MySchoolSyllabus.this, Materia.class);
materia.putExtra("materia", nome.get(position));
startActivityForResult(materia, 10);
}
}

材料.java

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import java.util.ArrayList;
public class Materia extends AppCompatActivity implements Item_Adapter.ItemListener {
Item_Adapter item_adapter;
ArrayList<Integer> pass = new ArrayList<>();
ArrayList<String> nome = new ArrayList<>();
ListView list;
String arg, materia;
//Here I didn't code topics yet in the switch. I'll do it the future. This is not important now.
void CaricaDati (String m) {
nome.clear();
switch (m) {
case "Italiano":
nome.clear();
//
pass.clear();
//
break;
case "Matematica":
nome.clear();
//
pass.clear();
//
break;
case "Arte":
nome.clear();
//
pass.clear();
//
break;
case "Biologia":
nome.clear();
//
pass.clear();
//
break;
case "Chimica":
nome.clear();
//
pass.clear();
//
break;
case "Elettronica":
nome.clear();
//
pass.clear();
//
break;
case "Filosofia":
nome.clear();
//
pass.clear();
//
break;
case "Fisica":
nome.clear();
//
pass.clear();
//
break;
case "Geografia":
nome.clear();
//
pass.clear();
//
break;
case "Informatica":
nome.clear();
//
pass.clear();
//
break;
case "Inglese":
nome.clear();
//
pass.clear();
//
break;
case "Storia":
nome.clear();
//
pass.clear();
//
break;
}
item_adapter.notifyDataSetChanged();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_materia);
materia = getIntent().getStringExtra("materia");
item_adapter = new Item_Adapter(this, R.layout.row, pass);
item_adapter.setItemListener(Materia.this);
list = findViewById(R.id.lista);
list.setAdapter(item_adapter);
CaricaDati(materia);
}
@Override
public void startNewIntent(int position) {
arg = nome.get(position);
String dispensa = materia + "_" + arg;
Intent argomento = new Intent(Materia.this, Argomento.class);
argomento.putExtra("dispensa", nome.get(position));
startActivityForResult(argomento, 10);
}
}

//Item_Adapter.java

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import java.util.List;
public class Item_Adapter extends ArrayAdapter<Integer> {
public interface ItemListener {
void startNewIntent(int position);
}
ItemListener listener = null;
public void setItemListener(ItemListener item) {
listener = item;
}
public Item_Adapter(@NonNull Context context, int resource, @NonNull List<Integer> objects) {
super(context, resource, objects);
}
@NonNull
@Override
public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.row, parent, false);
}
LinearLayout linear = convertView.findViewById(R.id.materia);
linear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(listener != null) listener.startNewIntent(position);
}
});
ImageView imageView = convertView.findViewById(R.id.imageView);
imageView.setBackgroundResource(getItem(position));
return convertView;
}
}

//activity_my_school_syllabus.xml(与 materia XML 布局相同(

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="com.example.fabio.myschoolsyllabus.MySchoolSyllabus">
<ListView
android:id="@+id/lista"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>

行.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/materia"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageButton
android:layout_width="match_parent"
android:id="@+id/imageView"
android:layout_height="120dp"/>
</LinearLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.fabio.myschoolsyllabus">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MySchoolSyllabus">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Materia"></activity>
<activity android:name=".Argomento"></activity>
</application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/materia"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >    
<ImageButton
android:id="@+id/imgButton"
android:layout_width="match_parent"
android:layout_height="120dp"/>    
</LinearLayout>

~

public class Item_Adapter extends ArrayAdapter<Integer> {
public interface ItemListener {
void startNewIntent(int position);
}
ItemListener listener = null;
public void setItemListener(ItemListener item) {
listener = item;
}
public Item_Adapter(@NonNull Context context, int resource, @NonNull List<Integer> objects) {
super(context, resource, objects);
}
@NonNull
@Override
public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.row, parent, false);
}
ImageButton imgButton = convertView.findViewById(R.id.imageButton);
imgButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(listener != null) listener.startNewIntent(position);
}
});
ImageView imageView = convertView.findViewById(R.id.imageView);
imageView.setBackgroundResource(getItem(position));
return convertView;
}
}

请将所有活动声明到 AndroidManifest 文件中。

最新更新