Java Android Spinner上的对象属性(RESTAPI)
我暴露了我的问题。我已经创建了一个RESTAPI,现在我正在Android应用程序中使用它。这个有问题的应用程序试图给学生提供帮助(这是我在课堂上做的一个课堂项目) 在我的应用程序中,当选择一个科目和注册该科目的学生时,您必须选择缺课的开始时间。我这样做的方式允许我选择一个预定义的时间,我希望获取作为对象属性的开始时间,并将它们放入一个带有预定义android适配器(android.R.layout.simple\u spinner\u item或android.R.layout.simple\u spinner\u dropdown\u item)的微调器中 我有一个类AsynkTask,它负责从API获取“schedule”的对象,在这些对象中有我想在微调器中显示的String类型的“Start”属性 问题是,有问题的用户教师只需在微调器中选择一个预定义的开始时间,然后按缺少的按钮添加故障。因此,在选择微调器上的特定时间时,微调器应将与所讨论的“开始”相关的“ID”属性存储在按钮操作旁边要发送的变量中。(创建故障可以正常工作,但我仅使用固定ID进行了尝试) 这是我的密码 活动Java Android Spinner上的对象属性(RESTAPI),java,android,json,api,Java,Android,Json,Api,我暴露了我的问题。我已经创建了一个RESTAPI,现在我正在Android应用程序中使用它。这个有问题的应用程序试图给学生提供帮助(这是我在课堂上做的一个课堂项目) 在我的应用程序中,当选择一个科目和注册该科目的学生时,您必须选择缺课的开始时间。我这样做的方式允许我选择一个预定义的时间,我希望获取作为对象属性的开始时间,并将它们放入一个带有预定义android适配器(android.R.layout.simple\u spinner\u item或android.R.layout.simple\
public class FaltasActivity extends AppCompatActivity implements OnFaltasReturn, OnAlumnoReturn, OnHorarioReturn {
private TextView nombre, apellidos, correo, titleFault;
private Toolbar toolbar;
private RecyclerView mRecyclerView;
private RecyclerView.LayoutManager mLayoutManager;
private ArrayList<Falta> listaFaltas;
private ArrayList<Horario> listaHorario;
private List<String> list;
private FaltasAdapter adapter;
private ArrayAdapter<String> spinnerAdapter;
private Integer idModulo, idAlumno, idHorario;
private Button falta;
private Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_faltas);
toolbar = findViewById(R.id.toolbar_faltas);
titleFault = findViewById(R.id.toolbar_title_fault);
titleFault.setText("Faltas");
setSupportActionBar(toolbar);
// SPINNER I think the spinner is well implemented ... but I can not add the objects to the lists correctly.
spinner = findViewById(R.id.spinner);
listaHorario = new ArrayList<>();
list = new ArrayList<>();
HorarioATask horarioATask = new HorarioATask(this, this);
horarioATask.execute();
for (int i = 0; i < listaHorario.size(); i++) {
list.add(listaHorario.get(i).getInicio());
}
spinnerAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, list);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerAdapter);
//Finish SPINNER code
idModulo = getIntent().getExtras().getInt("ID_MODULO");
idAlumno = getIntent().getExtras().getInt("ID_ALUMNO");
idHorario = 1; //This is the variable to be replaced when a start is selected.
nombre = findViewById(R.id.item_tittle);
apellidos = findViewById(R.id.second_item);
correo = findViewById(R.id.third_item);
mRecyclerView = findViewById(R.id.rvf);
AlumnoATask alumnoATask = new AlumnoATask(this, this, idAlumno);
alumnoATask.execute();
listaHorario = new ArrayList<>();
falta = findViewById(R.id.action_button_1);
falta.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AsyncTask.execute(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
final ApiConnector apiConnector = new ApiConnector();
final String URI_POST = "faltas";
String token;
String uri = URI_POST;
String method = "POST";
String json;
Alumno alumno = new Alumno(idAlumno);
Modulo modulo = new Modulo(idModulo);
Horario horario = new Horario(idHorario);
Falta falta = new Falta(alumno, horario, modulo);
json = gson.toJson(falta, Falta.class);
SharedPreferences prefs = getSharedPreferences("userObject", Context.MODE_PRIVATE);
token = prefs.getString("token", "");
apiConnector.consult(uri, method, json, token);
}
});
}
});
listaFaltas = new ArrayList<>();
mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setHasFixedSize(true);
adapter = new FaltasAdapter(this, listaFaltas);
mRecyclerView.setAdapter(adapter);
mRecyclerView.setLayoutManager(mLayoutManager);
FaltaATask faltaATask = new FaltaATask(this, this, idAlumno, idModulo);
faltaATask.execute();
}
@Override
public void onFaltasConsultados(ArrayList<Falta> listaFaltas) {
this.listaFaltas.clear();
this.listaFaltas.addAll(listaFaltas);
this.adapter.notifyDataSetChanged();
}
@Override
public void onFaltasError() {
Toast.makeText(this, "Error en el listado de faltas", Toast.LENGTH_SHORT).show();
}
@Override
public void onAlumnosConsultados(Alumno alumno) {
this.nombre.setText(alumno.getNombre());
this.apellidos.setText(alumno.getApellidos());
this.correo.setText(alumno.getCorreo());
}
@Override
public void onAlumnosError() {
Toast.makeText(this, "Error en los datos del alumno", Toast.LENGTH_SHORT).show();
}
//In theory this fills the lists (Interface)
@Override
public void onHorarioConsultados(ArrayList<Horario> listaHorario) {
this.listaHorario.clear();
this.listaHorario.addAll(listaHorario);
this.adapter.notifyDataSetChanged();
}
@Override
public void onHorarioError() {
Toast.makeText(this, "Error con los horarios", Toast.LENGTH_SHORT).show();
}
}
HorarioATask(AsynkTask)
公共类HorarioATask扩展异步任务{
私人语境;
私家侦探;
公共HorarioATask(OnHorarioReturn mListener,Context){
this.mListener=mListener;
this.context=上下文;
}
@凌驾
受保护的ArrayList doInBackground(无效…无效){
ArrayList listaHorarios=新的ArrayList();
最终字符串URI_GET=“horarios”;
Gson Gson=新的Gson();
字符串标记;
字符串uri;
字符串方法;
字符串json=null;
最终ApiConnector ApiConnector=新ApiConnector();
SharedReferences prefs=context.getSharedReferences(“userObject”,context.MODE\u PRIVATE);
token=prefs.getString(“token”,”);
uri=uri\u GET;
方法=“获取”;
String response=apiConnector.consult(uri、方法、json、令牌);
类型tT=新类型令牌
activity.xml
<android.support.constraint.ConstraintLayout 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="match_parent"
android:fitsSystemWindows="@bool/fitsSystemWindows"
android:orientation="vertical"
tools:context=".FaltasActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_faltas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:elevation="4dp"
android:theme="@style/ToolbarTheme"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
<TextView
android:id="@+id/toolbar_title_fault"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorWhite" />
</android.support.v7.widget.Toolbar>
<android.support.v7.widget.CardView
android:id="@+id/fault_card"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/Toolbar"
android:fitsSystemWindows="@bool/fitsSystemWindows">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/item_tittle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Nombre"
android:textAppearance="@style/TextAppearance.AppCompat.Headline"
android:textColor="@color/colorPrimaryTextDefaultMaterialLight" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/second_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Apellidos"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="@color/colorSecondaryTextDefaultMaterialLight" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/third_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Correo electrónico"
android:textAppearance="@style/TextAppearance.AppCompat.Body2"
android:textColor="@color/colorSecondaryTextDefaultMaterialLight" />
</LinearLayout>
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginTop="8dp" />
<Button
android:id="@+id/action_button_1"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:minWidth="0dp"
android:paddingBottom="8dp"
android:paddingEnd="16dp"
android:paddingStart="16dp"
android:paddingTop="8dp"
android:text="Falta"
android:textColor="@color/colorPrimaryTextDefaultMaterialDark"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/rvf"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
试试看:
public class FaltasActivity extends AppCompatActivity implements OnFaltasReturn, OnAlumnoReturn, OnHorarioReturn {
private TextView nombre, apellidos, correo, titleFault;
private Toolbar toolbar;
private RecyclerView mRecyclerView;
private RecyclerView.LayoutManager mLayoutManager;
private ArrayList<Falta> listaFaltas;
private ArrayList<Horario> listaHorario;
private List<String> list;
private FaltasAdapter adapter;
private ArrayAdapter<String> spinnerAdapter;
private Integer idModulo, idAlumno, idHorario;
private Button falta;
private Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_faltas);
toolbar = findViewById(R.id.toolbar_faltas);
titleFault = findViewById(R.id.toolbar_title_fault);
titleFault.setText("Faltas");
setSupportActionBar(toolbar);
// SPINNER I think the spinner is well implemented ... but I can not add the objects to the lists correctly.
spinner = findViewById(R.id.spinner);
listaHorario = new ArrayList<>();
list = new ArrayList<>();
HorarioATask horarioATask = new HorarioATask(this, this);
horarioATask.execute();
//Finish SPINNER code
idModulo = getIntent().getExtras().getInt("ID_MODULO");
idAlumno = getIntent().getExtras().getInt("ID_ALUMNO");
idHorario = 1; //This is the variable to be replaced when a start is selected.
nombre = findViewById(R.id.item_tittle);
apellidos = findViewById(R.id.second_item);
correo = findViewById(R.id.third_item);
mRecyclerView = findViewById(R.id.rvf);
AlumnoATask alumnoATask = new AlumnoATask(this, this, idAlumno);
alumnoATask.execute();
listaHorario = new ArrayList<>();
falta = findViewById(R.id.action_button_1);
falta.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AsyncTask.execute(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
final ApiConnector apiConnector = new ApiConnector();
final String URI_POST = "faltas";
String token;
String uri = URI_POST;
String method = "POST";
String json;
Alumno alumno = new Alumno(idAlumno);
Modulo modulo = new Modulo(idModulo);
Horario horario = new Horario(idHorario);
Falta falta = new Falta(alumno, horario, modulo);
json = gson.toJson(falta, Falta.class);
SharedPreferences prefs = getSharedPreferences("userObject", Context.MODE_PRIVATE);
token = prefs.getString("token", "");
apiConnector.consult(uri, method, json, token);
}
});
}
});
listaFaltas = new ArrayList<>();
mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setHasFixedSize(true);
adapter = new FaltasAdapter(this, listaFaltas);
mRecyclerView.setAdapter(adapter);
mRecyclerView.setLayoutManager(mLayoutManager);
FaltaATask faltaATask = new FaltaATask(this, this, idAlumno, idModulo);
faltaATask.execute();
}
@Override
public void onFaltasConsultados(ArrayList<Falta> listaFaltas) {
this.listaFaltas.clear();
this.listaFaltas.addAll(listaFaltas);
this.adapter.notifyDataSetChanged();
for (int i = 0; i < listaHorario.size(); i++) {
list.add(listaHorario.get(i).getInicio());
}
spinnerAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, list);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerAdapter);
}
@Override
public void onFaltasError() {
Toast.makeText(this, "Error en el listado de faltas", Toast.LENGTH_SHORT).show();
}
@Override
public void onAlumnosConsultados(Alumno alumno) {
this.nombre.setText(alumno.getNombre());
this.apellidos.setText(alumno.getApellidos());
this.correo.setText(alumno.getCorreo());
}
@Override
public void onAlumnosError() {
Toast.makeText(this, "Error en los datos del alumno", Toast.LENGTH_SHORT).show();
}
//In theory this fills the lists (Interface)
@Override
public void onHorarioConsultados(ArrayList<Horario> listaHorario) {
this.listaHorario.clear();
this.listaHorario.addAll(listaHorario);
this.adapter.notifyDataSetChanged();
}
@Override
public void onHorarioError() {
Toast.makeText(this, "Error con los horarios", Toast.LENGTH_SHORT).show();
}
}
公共类FaltasActivity扩展了AppCompatActivity在FaltasReturn、OnAllumNoreturn和OnHorarioReturn上实现的AppCompatActivity{
private TextView nombre、apellidos、correo、titleFault;
专用工具栏;
私人回收视图mRecyclerView;
private RecyclerView.LayoutManager MLLayoutManager;
私人ArrayList listaFaltas;
私人ArrayList listaHorario;
私人名单;
专用适配器;
专用阵列适配器;
私有整数idModulo、idAlumno、idHorario;
私人按钮;
私人纺纱机;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_faltas);
工具栏=findViewById(R.id.toolbar_faltas);
titleFault=findviewbyd(R.id.toolbar\u title\u故障);
titleFault.setText(“Faltas”);
设置支持操作栏(工具栏);
//微调器我认为微调器实现得很好…但是我不能正确地将对象添加到列表中。
微调器=findViewById(R.id.spinner);
listaHorario=newarraylist();
列表=新的ArrayList();
HorarioATask HorarioATask=新的HorarioATask(这个,这个);
horarioATask.execute();
//完成微调器代码
idModulo=getIntent().getExtras().getInt(“ID_MODULO”);
idAlumno=getIntent().getExtras().getInt(“ID_校友”);
idHorario=1;//这是选择开始时要替换的变量。
nombre=findviewbyd(R.id.item_title);
apellidos=findViewById(R.id.第二项);
correo=findViewById(R.id.第三项);
mRecyclerView=findviewbyd(R.id.rvf);
Alumnatask Alumnatask=新的Alumnatask(this,this,idAlumno);
AlumnaTask.execute();
listaHorario=newarraylist();
falta=findViewById(R.id.操作按钮1);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
AsyncTask.execute(新的Runnable(){
@凌驾
公开募捐{
Gson Gson=新的Gson();
最终ApiConnector ApiConnector=新ApiConnector();
最终字符串URI_POST=“faltas”;
字符串标记;
字符串uri=uri\u POST;
String method=“POST”;
字符串json;
校友校友=新校友(idAlumno);
模=新模(idModulo);
Horario Horario=新Horario(Idharrio);
Falta Falta=新的Falta(校友,horario,模数);
json=gson.toJson(falta,falta.class);
SharedReferences prefs=getSharedReferences(“userObject”,Context.MODE\u PRIVATE);
token=prefs.getString(“token”,”);
consult(uri、方法、json、令牌);
}
});
}
});
listaFaltas=newarraylist();
mLayoutManager=新的LinearLayoutManager(此);
mRecyclerView.setHasFixedSize(true);
适配器=新的FaltasAdapter(此为ListaAltas);
mRecyclerView.setAdapter(适配器);
mRecyclerView.setLayoutManager(mllayoutmanager);
faltatask faltatask=新的faltatask(this,this,idAlumno,idModulo);
faltatask.execute();
}
@凌驾
FaltasConsultados(ArrayList listaFaltas)上的公共无效{
this.listaFaltas.clear();
public interface OnHorarioReturn {
void onHorarioConsultados(ArrayList<Horario> listaHorario);
void onHorarioError();
<android.support.constraint.ConstraintLayout 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="match_parent"
android:fitsSystemWindows="@bool/fitsSystemWindows"
android:orientation="vertical"
tools:context=".FaltasActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_faltas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:elevation="4dp"
android:theme="@style/ToolbarTheme"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
<TextView
android:id="@+id/toolbar_title_fault"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorWhite" />
</android.support.v7.widget.Toolbar>
<android.support.v7.widget.CardView
android:id="@+id/fault_card"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/Toolbar"
android:fitsSystemWindows="@bool/fitsSystemWindows">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/item_tittle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Nombre"
android:textAppearance="@style/TextAppearance.AppCompat.Headline"
android:textColor="@color/colorPrimaryTextDefaultMaterialLight" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/second_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Apellidos"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="@color/colorSecondaryTextDefaultMaterialLight" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/third_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Correo electrónico"
android:textAppearance="@style/TextAppearance.AppCompat.Body2"
android:textColor="@color/colorSecondaryTextDefaultMaterialLight" />
</LinearLayout>
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginTop="8dp" />
<Button
android:id="@+id/action_button_1"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:minWidth="0dp"
android:paddingBottom="8dp"
android:paddingEnd="16dp"
android:paddingStart="16dp"
android:paddingTop="8dp"
android:text="Falta"
android:textColor="@color/colorPrimaryTextDefaultMaterialDark"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/rvf"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
public class FaltasActivity extends AppCompatActivity implements OnFaltasReturn, OnAlumnoReturn, OnHorarioReturn {
private TextView nombre, apellidos, correo, titleFault;
private Toolbar toolbar;
private RecyclerView mRecyclerView;
private RecyclerView.LayoutManager mLayoutManager;
private ArrayList<Falta> listaFaltas;
private ArrayList<Horario> listaHorario;
private List<String> list;
private FaltasAdapter adapter;
private ArrayAdapter<String> spinnerAdapter;
private Integer idModulo, idAlumno, idHorario;
private Button falta;
private Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_faltas);
toolbar = findViewById(R.id.toolbar_faltas);
titleFault = findViewById(R.id.toolbar_title_fault);
titleFault.setText("Faltas");
setSupportActionBar(toolbar);
// SPINNER I think the spinner is well implemented ... but I can not add the objects to the lists correctly.
spinner = findViewById(R.id.spinner);
listaHorario = new ArrayList<>();
list = new ArrayList<>();
HorarioATask horarioATask = new HorarioATask(this, this);
horarioATask.execute();
//Finish SPINNER code
idModulo = getIntent().getExtras().getInt("ID_MODULO");
idAlumno = getIntent().getExtras().getInt("ID_ALUMNO");
idHorario = 1; //This is the variable to be replaced when a start is selected.
nombre = findViewById(R.id.item_tittle);
apellidos = findViewById(R.id.second_item);
correo = findViewById(R.id.third_item);
mRecyclerView = findViewById(R.id.rvf);
AlumnoATask alumnoATask = new AlumnoATask(this, this, idAlumno);
alumnoATask.execute();
listaHorario = new ArrayList<>();
falta = findViewById(R.id.action_button_1);
falta.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AsyncTask.execute(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
final ApiConnector apiConnector = new ApiConnector();
final String URI_POST = "faltas";
String token;
String uri = URI_POST;
String method = "POST";
String json;
Alumno alumno = new Alumno(idAlumno);
Modulo modulo = new Modulo(idModulo);
Horario horario = new Horario(idHorario);
Falta falta = new Falta(alumno, horario, modulo);
json = gson.toJson(falta, Falta.class);
SharedPreferences prefs = getSharedPreferences("userObject", Context.MODE_PRIVATE);
token = prefs.getString("token", "");
apiConnector.consult(uri, method, json, token);
}
});
}
});
listaFaltas = new ArrayList<>();
mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setHasFixedSize(true);
adapter = new FaltasAdapter(this, listaFaltas);
mRecyclerView.setAdapter(adapter);
mRecyclerView.setLayoutManager(mLayoutManager);
FaltaATask faltaATask = new FaltaATask(this, this, idAlumno, idModulo);
faltaATask.execute();
}
@Override
public void onFaltasConsultados(ArrayList<Falta> listaFaltas) {
this.listaFaltas.clear();
this.listaFaltas.addAll(listaFaltas);
this.adapter.notifyDataSetChanged();
for (int i = 0; i < listaHorario.size(); i++) {
list.add(listaHorario.get(i).getInicio());
}
spinnerAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, list);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerAdapter);
}
@Override
public void onFaltasError() {
Toast.makeText(this, "Error en el listado de faltas", Toast.LENGTH_SHORT).show();
}
@Override
public void onAlumnosConsultados(Alumno alumno) {
this.nombre.setText(alumno.getNombre());
this.apellidos.setText(alumno.getApellidos());
this.correo.setText(alumno.getCorreo());
}
@Override
public void onAlumnosError() {
Toast.makeText(this, "Error en los datos del alumno", Toast.LENGTH_SHORT).show();
}
//In theory this fills the lists (Interface)
@Override
public void onHorarioConsultados(ArrayList<Horario> listaHorario) {
this.listaHorario.clear();
this.listaHorario.addAll(listaHorario);
this.adapter.notifyDataSetChanged();
}
@Override
public void onHorarioError() {
Toast.makeText(this, "Error con los horarios", Toast.LENGTH_SHORT).show();
}
}