How to display decimals on android studio - android-studio

Hello I have a problem between the double and int
my code "works" when I put the variables in int but I do not have the numbers after the decimal point as soon as I put in duplicate it puts the result to me at 0 and I do not see why
MyCartAdpter
public class MyCartAdapter extends RecyclerView.Adapter<MyCartAdapter.ViewHolder> {
Context context;
List<MyCartModel> list;
double totalAmount =0;
...
}
#Override
public void onBindViewHolder(#NonNull ViewHolder holder, int position) {
...
holder.totalPrice.setText(String.valueOf(list.get(position).getTotalPrice()));
//total amount pass to cart activity
totalAmount = (totalAmount + list.get(position).getTotalPrice());
Intent intent = new Intent("MyTotalAmount");
intent.putExtra("totalAmount",totalAmount);
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}
MyCartModel
public class MyCartModel {
...
double totalPrice;
...
}
public MyCartModel(..., double totalPrice, ...) {
...
this.totalPrice = totalPrice;
...
}
public double getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(double totalPrice) {
this.totalPrice = totalPrice;
}
and my CartActivity
public BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
#Override
public void onReceive(Context context, Intent intent) {
double totalBill = intent.getIntExtra("totalAmount",0);
overAllAmount.setText("Montant Total :"+totalBill+"€");
}
};
thank you for your help because for 24 hours I have been looking

overAllAmount.setText(String.format("%.2f",totalBill));
Could also put the textviews input type to numberdecimal
android:inputType="numberDecimal"
Happy coding

Related

how to get all values added to recyclerview and send it to ion lib

so im trying to get recyclerview data list added and send it to ion lib when i use method below i only get one element as ill have to change string inside for() to String fav =null ouside of for() and log.d only shows the last result. i need get all so i can send to senddata() to ion lib
FavModelClass
private String fav;
private String user_id;
public FavModelClass(String fav, String user_id) {
this.fav = fav;
this.user_id = user_id;
}
public String getFav() {
return fav;
}
public void setFav(String fav) {
this.fav = fav;
}
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
}
adapter
public class FavAdapter extends
RecyclerView.Adapter<FavAdapter .MyViewHolder> {
private List<FavModelClass> favModelClassList;
private Context beddingContext;
public FavAdapter (List<FavModelClass> favModelClassList, Context
beddingContext) {
this.favModelClassList= favModelClassList;
this.beddingContext = beddingContext;
}
#NonNull
#Override
public FavAdapter.MyViewHolder onCreateViewHolder(#NonNull ViewGroup
parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.amenitylayout,parent,false);
FavAdapter .MyViewHolder holder = new FavAdapter .MyViewHolder(view);
return holder;
}
#Override
public void onBindViewHolder(#NonNull FavAdapter.MyViewHolder holder, int i) {
final FavModelClassdata = favModelClassList.get(i);
holder.ac_bedding_type.setText(data.getFav()+" "+"MAX:"+data.getUser_id());
holder.delete_entry.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View view) {
removeAt(holder.getAdapterPosition());
}
});
}
public void removeAt(int position) {
favModelClassList.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, favModelClassList.size());
}
#Override
public int getItemCount() {
return favModelClassList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
private TextView ac_bedding_type;
private ImageButton delete_entry;
public MyViewHolder(#NonNull View v) {
super(v);
ac_bedding_type = v.findViewById(R.id.ac_amenity_name);
delete_entry = v.findViewById(R.id.delete_amenity_entry);
}
}
}
Main activity
fav_recycler = findViewById(R.id.fave_recycler);
GridLayoutManager layoutManager1 = new GridLayoutManager(getApplicationContext(), 2,GridLayoutManager.VERTICAL, false);
fav_recycler.setHasFixedSize(true);
fav_recycler.setLayoutManager(layoutManager1);
favModelClassList= new ArrayList<>();
addfavamenity.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View view) {
favModelClassList.add(new FavModelClass(
amenityET.getText().toString(),
user_idET.getText().toString()
));
amenityET.setText("");
user_idET.setText("");
FavAdapter adapter = new FavAdapter (favModelClassList, getApplicationContext());
adapter.notifyDataSetChanged();
fav_recycler.setAdapter(adapter);
for (int i = 0; i < favModelClassList.size(); i++) {
final FavModelClassList data = favModelClassList.get(i);
final String fav= data.getFav();
final String user_id = data.getUser_id();
Log.d(TAG, "onClick: "+ fav);
}
}
});
ArrayList d = new ArrayList();
for (int i = 0; i < favModelClassList.size(); i++) {
final FavModelClassList data = favModelClassList.get(i);
d.add(data.getFav());
}
Log.d(TAG, "onClick: " + d);

I Want To Itemonclicklister in Fragment on Spinner

This Is Main Fragment
Fragment:
private void getStock() {
dialog.show();
Retrofit retrofit = RetrofitClient.getRetrofitInstance();
apiInterface api = retrofit.create(apiInterface.class);
Call<List<Blocks>>call = api.getVaccineBlocks();
call.enqueue(new Callback<List<Blocks>>() {
#Override
public void onResponse(Call<List<Blocks>>call, Response<List<Blocks>> response) {
if (response.code() == 200) {
block = response.body();
spinnerada();
dialog.cancel();
}else{
dialog.cancel();
}
}
#Override
public void onFailure(Call<List<Blocks>> call, Throwable t) {
dialog.cancel();
}
});
}
private void spinnerada() {
String[] s = new String[block.size()];
for (int i = 0; i < block.size(); i++) {
s[i] = block.get(i).getBlockName();
final ArrayAdapter a = new ArrayAdapter(getContext(), android.R.layout.simple_spinner_item, s);
a.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//Setting the ArrayAdapter data on the Spinner
spinner.setAdapter(a);
}
}
This Is Blocks Model
model:
package com.smmtn.book.models;
import java.io.Serializable;
public class Blocks implements Serializable {
public String id;
public String blockName;
public String blockSlug;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getBlockName() {
return blockName;
}
public void setBlockName(String blockName) {
this.blockName = blockName;
}
public String getBlockSlug() {
return blockSlug;
}
public void setBlockSlug(String blockSlug) {
this.blockSlug = blockSlug;
}
}
here i need onitemclick with blockslug please any one can help, am new to android so i need some example.when on click i want take blockslug and load another method with that blockslug,like will get data from u "http://example.com/block/"+blockslug
i want to get blockslug from selected block
i hope guys i will get help
and sorry for my bad English,
First of all, you need to implement setOnItemSelectedListener. Refer to this https://stackoverflow.com/a/20151596/9346054
Once you selected the item, you can call them by making a new method. Example like below
public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) {
Toast.makeText(parent.getContext(),
"OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(),
Toast.LENGTH_SHORT).show();
final String itemSelected = parent.getItemAtPosition(pos).toString();
showBlockSlug(itemSelected);
}
And then, at the method showBlockSlug() , you can call Retrofit.
private void showBlockSlug(final String blockslug){
final String url = "http://example.com/block/"+ blockslug;
//Do your stuff...
}

RecycleView adapter and main code is not working by an unknown mistake, can you spot the diffrence

hello everyone, I am kind of new using android studio and I am working on my school project. I need to use RecycleVie wand I tried making it but without success.
I use a Object class caled Task whcih have 3 propeties to be shown on the layout but I don't know where is my mistake. the rows which shown as problems are in bold. I will be glad if anyone can help me!
my Object class:
public class Task {
private String material;
private String day;
private String month;
public Task (String material,String day,String month)
{
this.material = material;
this.day = day;
this.month = month;
}
public String getMaterial() {
return material;
}
public void setMaterial(String material) {
this.material = material;
}
public String getDay() {
return day;
}
public void setDay(String day) {
this.day = day;
}
public String getMonth() {
return month;
}
public void setMonth(String month) {
this.month = month;
}
}
the Adapter Code:
public class HomeRecyclerViewAdapter extends RecyclerView.Adapter<HomeRecyclerViewAdapter.ViewHolder> {
private Context mCtx;
private List<Task> tList;
// data is passed into the constructor
public HomeRecyclerViewAdapter(Context mCtx, List<Task> tList) {
this.mCtx = mCtx;
this.tList = tList;
}
// stores and recycles views as they are scrolled off screen
public class ViewHolder extends RecyclerView.ViewHolder {
TextView tvText, tvDateDay, tvDateMonth;
public ViewHolder(View itemView) {
super(itemView);
tvText = itemView.findViewById(R.id.tvText);
tvDateDay = itemView.findViewById(R.id.tvDateDay);
tvDateMonth = itemView.findViewById(R.id.tvDateMonth);
}
}
// inflates the row layout from xml when needed
#Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//inflating and returning our view holder
LayoutInflater inflater = LayoutInflater.from(mCtx);
View view = inflater.inflate(R.layout.home_recyclerview_row, null);
return new ViewHolder(view);
}
// binds the data to the TextView in each row
#Override
public void onBindViewHolder(ViewHolder holder, int position) {
Task task = tList.get(position);
**holder.tvText.setText(task.getMaterial());**
}
// allows clicks events to be caught
#Override
public int getItemCount() {
return tList.size();
}
}
and the main code:
public class HomeScreen_activity extends AppCompatActivity implements View.OnClickListener {
List<Task> tList;
RecyclerView homercy;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.home_screen_layout);
homercy = (RecyclerView) findViewById(R.id.homercy);
homercy.setHasFixedSize(true);
homercy.setLayoutManager(new LinearLayoutManager(this));
// set up the RecyclerView
RecyclerView recyclerView = findViewById(R.id.homercy);
tList = new ArrayList<Task>();
Task t1 = new Task("test","12","05");
tList.add(t1);
**HomeRecyclerViewAdapter adapter = new HomeRecyclerViewAdapter(this,tList);**
recyclerView.setAdapter(adapter);
}
Maybe in onCreateViewHolder(), you must do this:
// inflates the row layout from xml when needed
#Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_recyclerview_row, parent, false);
return new ViewHolder(view);
}

Get Stored Data From Superclass to Subclass Object

I have a super class "Player" and 3 sub classes "BaseballPlayer", "FootballPlayer", and "BasketballPlayer"... To make things simple, I will only share "Player" and "BaseballPlayer".
I am trying to store data into an object of these classes, but I can not seem to get it and print it back out.
Player.java
public class Player {
private int id;
private String playerName;
private String teamName;
private String position;
private double salary;
private double commisionRate;
/* Default Constructor */
public Player() {
}
/* Constructor */
public Player(int id, String playerName, String teamName, String position, double salary, double commisionRate) {
this.id = id;
this.playerName = playerName;
this.teamName = teamName;
this.position = position;
this.salary = salary;
this.commisionRate = commisionRate;
}
/* Getters */
public int getID() {
return id;
}
public String getPlayerName() {
return playerName;
}
public String getTeamName() {
return teamName;
}
public String getPosition() {
return position;
}
public double getSalary() {
return salary;
}
public double getCommisionRate() {
return commisionRate;
}
/* Setters */
public void setID(int id) {
this.id = id;
}
public void setPlayerName(String playerName) {
this.playerName = playerName;
}
public void setTeamName(String teamName) {
this.teamName = teamName;
}
public void setPosition(String position) {
this.position = position;
}
public void setSalary(double salary) {
this.salary = salary;
}
public void setCommision(double commisionRate) {
this.commisionRate = commisionRate;
}
/* Effectors */
public double calcCommision()
{
return salary * commisionRate;
}
}
BaseballPlayer.java
public class BaseballPlayer extends Player {
public static final double Threshold = 0.25;
private int numOfHits;
private int numAtBat;
/* Default Constructor */
public BaseballPlayer() {
}
/* Constructor */
public BaseballPlayer(int id, String playerName, String teamName, String position, double salary, double commisionRate, int numOfHits, int numAtBat) {
super(id, playerName, teamName, position, salary, commisionRate);
this.numOfHits = numOfHits;
this.numAtBat = numAtBat;
}
/* Getters */
public int getNumOfHits() {
return numOfHits;
}
public int getNumAtBat() {
return numAtBat;
}
/* Setters */
public void setNumOfHits(int numOfHits) {
this.numOfHits = numOfHits;
}
public void setNumAtBat(int numAtBat) {
this.numAtBat = numAtBat;
}
/* Effectors */
public double calcStats()
{
return numOfHits / numAtBat;
}
public boolean detStatus()
{
if(calcStats() > Threshold) {
return true;
} else {
return false;
}
}
}
Suppose with these two classes I create an object...
Player BaseballPlayer1 = new BaseballPlayer(4, "Jeff Jefferson", "Kentucky Kangaroos", "3rd Base", 340000.00, 0.02, 40, 5);
However, whenever I call to this object for the data, it prints nothing...
System.out.printf("Player ID: ", BaseballPlayer1.getID());
What am I missing? I've looked all over SO and Google, and my IDE shows no errors, but getID() returns no value...
This should work:
System.out.printf("Player ID: %d", baseballPlayer.getID());
Have a look at the this for example usage of System.out.printf().

Google fused location service android

class name is Myclass and implement methods like -> LocationListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener override methds
private static int UPDATE_INTERVAL = 10000; // 10 sec
private static int FATEST_INTERVAL = 5000; // 5 sec
private static int DISPLACEMENT = 10; // 10 meters
LocationRequest mLocationRequest;
GoogleApiClient mGoogleApiClient;
Location mCurrentLocation;
String mLastUpdateTime;
Context mContext;
#Override
public void onConnected(Bundle bundle) {
mGoogleApiClient = new GoogleApiClient.Builder(mContext)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API).build();
createLocationRequest();
PendingResult<Status> pendingResult = LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, (LocationListener) mContext);
}
private void createLocationRequest() {
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(UPDATE_INTERVAL);
mLocationRequest.setFastestInterval(FATEST_INTERVAL);
// mLocationRequest.setNumUpdates(2);
// mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}
#Ov
}
#Override
public void onConnectionFailed(ConnectionResult connectionResult) {
stopLocationUpdates();
}
#Override
public void onLocationChanged(Location location) {
mCurrentLocation = location;
DateFormat.getTimeInstance().format(new Date());
updateUI();
}
public String updateUI() {
if (null != mCurrentLocation) {
Double lat = mCurrentLocation.getLatitude();
Double lng = mCurrentLocation.getLongitude();
Log.d("thhhhhhhhhhhhhhhhhhhh",lat.toString() +lng.toString());
getCurrentlocation(mCurrentLocation);
//setCurrentLocation(String.valueOf(lat + "," + lng));
tLocation(mCurrentLocation);
// arrayList.add(mCurrentLocation);
return lat.toString();
}
return null;
}
private void getCurrentlocation(Location mCurrentLocation) {
}
public void setmCurrentLocation(Location mCurrentLocation) {
this.mCurrentLocation = mCurrentLocation;
}
protected void stopLocationUpdates() {
LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, (com.google.android.gms.location.LocationListener) this);
}
I want to develop mylocation class and getlocation method so its returns lat loan.
How to access that in any class and get lat lon ??
may you need to create servics, that implement google locationAPI , Location listner more..
In that override method onLocationChanged you get lat-long now you can send that direct to your server or other class
i hope My answer is help you.
if don't then ask me again.
thank you.

Resources