I have two custom adapter and I want to merge it in one Adapter Adapter carrying name and mac information I had seen lots of question but didnt understand clearly what to do THANKS BEFORE
MyAdapter.java
public class MyAdapter extends ArrayAdapter<DataPro> {
public MyAdapter(Context context, int resource, List<DataPro> collect) {
super(context, resource, collect);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = new TextView(getContext());
DataPro item = getItem(position);
textView.setTextColor(Color.BLACK);
textView.setText(item.Name+" : "+item.Mac);
return textView;
}
}
MyAdapter2.java
public class MyAdapter2 extends ArrayAdapter<Datapro2> {
public MyAdapter2(Context context, int resource, List<Datapro2> collect1) {
super(context, resource, collect1);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = new TextView(getContext());
Datapro2 item = getItem(position);
textView.setTextColor(Color.BLACK);
textView.setText(item.Name);
return textView;
}
}
In this Below java class i am showing data in two different listview i want to show it in one
public class Main2Activity extends AppCompatActivity {
ListView listOfDatabaseObject;
ListView listView;
SQLiteDatabase sqLiteDatabase;
UserDbHelper userDbHelper;
List<DataPro> result;
List<Datapro2> results;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
listOfDatabaseObject = (ListView)findViewById(R.id.listView);
listView = (ListView)findViewById(R.id.listView2);
userDbHelper = new UserDbHelper(getApplicationContext());
sqLiteDatabase =userDbHelper.getReadableDatabase();
result = userDbHelper.getItemFromDatabase(sqLiteDatabase);
MyAdapter adapter = new MyAdapter(getApplicationContext(), 0, result);
listOfDatabaseObject.setAdapter(adapter);
adapter.notifyDataSetChanged();
results = userDbHelper.getItemFromDatabase2(sqLiteDatabase);
MyAdapter2 adapter2 = new MyAdapter2(getApplicationContext(), 0, results);
listView.setAdapter(adapter2);
adapter.notifyDataSetChanged();
}
}
DataPro.java
public class DataPro {
String Name;
String Mac;
public DataPro(String Name, String Mac)
{
this.Name=Name;
this.Mac=Mac;
}
}
Datapro2.java
public class Datapro2 {
String Name;
public Datapro2(String Name)
{
this.Name=Name;
}
}
DataBaseclass.java
public class UserDbHelper extends SQLiteOpenHelper {
public static final String DB_NAME = "STUDENTINFO.DB";
public static final int DB_VERSION = 1;
String query = "SELECT * FROM " +MainActivity.collect+ " where " +Coloumn.NewInfo.MAC+ " in(select "+Coloumn.NewInfo.MAC+ " FROM " +MainActivity.collect2+");";
String query2 = "SELECT " + Coloumn.NewInfo.NAME + " FROM " +MainActivity.collect+ " where " +Coloumn.NewInfo.MAC+ " not in(select "+Coloumn.NewInfo.MAC+ " FROM " +MainActivity.collect2+");";
public UserDbHelper(Context context)
{
super(context,DB_NAME,null,DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
}
public void AddInformation(String name,String mac,SQLiteDatabase sqLiteDatabase)
{
ContentValues contentValues = new ContentValues();
contentValues.put(Coloumn.NewInfo.NAME,name);
contentValues.put(Coloumn.NewInfo.MAC,mac);
sqLiteDatabase.insert(MainActivity.collect,null,contentValues);
}
public void AddInformation2(String name,String mac,SQLiteDatabase sqLiteDatabase)
{
ContentValues contentValues = new ContentValues();
contentValues.put(Coloumn.NewInfo.NAME,name);
contentValues.put(Coloumn.NewInfo.MAC,mac);
sqLiteDatabase.insert(MainActivity.collect2,null,contentValues);
}
public List<DataPro> getItemFromDatabase(SQLiteDatabase sqLiteDatabase) {
List<DataPro> result = new ArrayList<>();
Cursor c = sqLiteDatabase.rawQuery(query,null);
while (c.moveToNext()) {
result.add(
new DataPro(
c.getString(c.getColumnIndex("name")),
c.getString(c.getColumnIndex("mac"))
)
);
}
c.close();
return result;
}
public List<Datapro2> getItemFromDatabase2(SQLiteDatabase sqLiteDatabase) {
List<Datapro2> result = new ArrayList<>();
Cursor c = sqLiteDatabase.rawQuery(query2,null);
while (c.moveToNext()) {
result.add(
new Datapro2(
c.getString(c.getColumnIndex("name"))
)
);
}
c.close();
return result;
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}