Lire fichier Excel CustomAdapter
Bonjour,
J'aimerai lire mon fichier excel avec une listview "customisé".
J'ai crée mon constructeur, j'ai fait son adapter ainsi que les .xml, cependant je n'arrive pas à récupérer les données des cellules, pourtant il arrive à récuperer le nombre de ligne de mon excel.
Je me retrouve avec le nombre de ligne de mon excel mais pas son contenu.
.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.content.res.AssetManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import org.w3c.dom.Text;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class DisplayMyCoProd extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display_my_co_prod);
ArrayList<Locom> myList = new ArrayList<Locom>();
Locom locom;
locom = new Locom("Engin","Visite");
Intent intent = getIntent();
String pathFile = intent.getStringExtra("EXTRA_pathFile");
TextView txtv = (TextView)findViewById(R.id.textView);
txtv.setText(pathFile);
try {
AssetManager am = getAssets();
InputStream is = am.open(pathFile);
Workbook wb = Workbook.getWorkbook(is);
Sheet sheet = wb.getSheet(0);
int row = sheet.getRows();
int col = sheet.getColumns();
String xx = "";
for (int i = 2; i < row; i++) {
for (int c = 1; c < col; c++) {
Cell cell = sheet.getCell(c, i);
switch (col) {
case 1:
locom.setEngin(cell.getContents());
break;
case 2:
locom.setVisite(cell.getContents());
break;
default:
break;
}
xx = xx + cell.getContents();
}
myList.add(locom);
}
} catch (Exception e) {
e.printStackTrace();
}
LocomAdpater dataAdapter = new LocomAdpater(this, myList);
ListView listView = (ListView) findViewById(R.id.display_listview);
listView.setAdapter(dataAdapter);
listView.setOnItemClickListener(new ItemListView());
}
private class ItemListView implements AdapterView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ViewGroup vg = (ViewGroup)view;
TextView tv_e = (TextView)vg.findViewById(R.id.tv_engin);
TextView tv_v = (TextView)vg.findViewById(R.id.tv_visite);
String engin = tv_e.getText().toString();
String visite = tv_v.getText().toString();
Toast.makeText(DisplayMyCoProd.this,engin +" : "+ visite, Toast.LENGTH_SHORT).show();
Intent ChoixDMCPActivity = new Intent(DisplayMyCoProd.this, ChoixDMCP.class);
ChoixDMCPActivity.putExtra("EXTRA_TV_E",engin);
ChoixDMCPActivity.putExtra("EXTRA_TV_V",visite);
startActivity(ChoixDMCPActivity);
}
}
} |
Locom.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
public class Locom {
private String engin = null;;
private String visite = null;;
//Constructeur
public Locom(String engin, String visite) {
super();
this.engin = engin;
this.visite = visite;
}
//set/get
public String getEngin() {
return engin;
}
public void setEngin(String engin) {
this.engin = engin;
}
public String getVisite() {
return visite;
}
public void setVisite(String visite) {
this.visite = visite;
}
} |
LocomAdapter.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class LocomAdpater extends ArrayAdapter<Locom> {
private Context context;
private ArrayList<Locom> myLocom;
public LocomAdpater(Context context, ArrayList<Locom> myLocom){
super(context, 0, myLocom);
this.context = context;
this.myLocom = myLocom;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Locom locomPosition = this.myLocom.get(position);
convertView = LayoutInflater.from(this.context).inflate(R.layout.custom_listview,null);
//Fill the Engin/Visite
TextView enginText = (TextView)convertView.findViewById(R.id.tv_engin);
TextView visiteText = (TextView)convertView.findViewById(R.id.tv_visite);
enginText.setText(locomPosition.getEngin());
visiteText.setText(locomPosition.getVisite());
return convertView;
}
} |
custom.listview.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_engin"
android:text="Engin"
android:textColor="#4bb6d6"
android:textSize="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_visite"
android:text="Visite"
android:textColor="#b30000"
android:textSize="18dp"
android:layout_marginLeft="30dp" />
</LinearLayout> |
display_my_co_prod.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
tools:context="com.mycoprod.akhetib.mycoprod.DisplayMyCoProd"
android:background="#ffffff">
<ListView
android:id="@+id/display_listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="MyCoProd"
android:id="@+id/PHP"
android:layout_gravity="center_horizontal"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView"
android:layout_alignBottom="@+id/display_listview"
android:layout_alignParentEnd="true" />
</RelativeLayout> |