Я пытаюсь понять, как я могу прочитать из CSV-файла и показать его на активность в Android Studio. Файл может содержать, например, такую информацию:
name,employer,location,position type,core competency
Junior Data Analyst,Lockerdome,Saint Louis,Data Scientist / Business Intelligence, Statistical Analysis
Project Coordinator Support,Maritz,Saint Louis,Technical Assistant / User Support,Non-coding
Junior Web Developer,Cozy,Portland,Web - Front End,Ruby
Junior Developer 3,LiveAnswer,South Florida,Web - Full Stack,Java
Full Stack Engineer,Splitwise,Rhode Island,Web - Full Stack,Ruby
Customer Experience,Splitwise,Rhode Island,Project Manager / Analyst,Non-coding
IT Support Specialist,Viamontech,South Florida,Technical Assistant / User Support,Non-coding C#/.net
Developer ,Hunter Engineering,Saint Louis,Software / Enterprise Developer,.Net
Junior Developer,"TruckMovers.com, Inc.",Kansas City,Web - Full Stack,Python
Software Engineer,Computer Associates Inc,Rhode Island,Software / Enterprise Developer,.Net
Для многих это, вероятно, простая задача, но я довольно новичок в разработке Android. Я видел несколько учебных пособий, но все они по-разному, и некоторые из них старше. Что меня смущало, так это то, что один парень создает класс на Java, а другой - деятельность. Еще одна путаница в том, что другой парень использует шаблон MVC в Android. Я знаю, что это имеет смысл в .NET. Но может ли кто-нибудь помочь мне с чего начать? Какие структуры следовать? Я знаю, что лучше начинать с деятельности. Например, jobListActivity
.
Любая ссылка на любые хорошие и новые учебники или примеры кодов, чтобы я мог начать, очень ценится.
РЕДАКТИРОВАТЬ (Послекомментарии): Итак, я создал ListActivity, который должен отображать список заданий, считываемых из файла CSV. Класс JobListActivity, который имеет атрибуты для задания.
Тем не менее я не могу отобразить список заданий из файла CSV. Это мои коды:
MainActivity.java
package com.example.jobsearch;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.Toast;
import com.opencsv.CSVReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView list = findViewById(R.id.list);
ArrayList<String> arrayList = new ArrayList<>();
try {
String csvfileString = this.getApplicationInfo().dataDir + File.separatorChar + "jobsCSV.csv";
File csvfile = new File(csvfileString);
CSVReader reader = new CSVReader(new FileReader("csvfile.getAbsolutePath()"));
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
// nextLine[] is an array of values from the line
System.out.println(nextLine[0] + nextLine[1] + "etc...");
}
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "The specified file was not found", Toast.LENGTH_SHORT).show();
}
}
}
activity_list.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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"
tools:context=".ListActivity">
<TextView
android:id="@+id/tvAList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:text="@string/textViewActivityList"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
listActivity.java
package com.example.jobsearch;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class ListActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
}
}
JobListActivity.javaкласс
package com.example.jobsearch;
import android.widget.ImageView;
public class JobsListActivity {
public String Company;
public String Title;
public String Rating;
public String ApplyStatus;
public ImageView CompanyLogos;
public String Location;
public String Position;
public JobsListActivity(String company,
String title,
String rating,
String applyStatus,
ImageView companyLogos,
String location,
String position) {
Company = company;
Title = title;
Rating = rating;
ApplyStatus = applyStatus;
CompanyLogos = companyLogos;
Location = location;
Position = position;
}
}