I'm making this app that when you press like or dislike it will count the number and save it. that is not that hard but here's the problem I need the names to be chosen randomly and the likes and dislikes to be saved for each randomly chosen name separately but every time i press like or dislike Random generates a new number and stores likes or dislikes on the new randomly chosen name
I'm posting all my code below and for this example i only have three names and fixed numbers on the arrays so that you can easily check the problem yourselves
MainActivity java
package gr.com.plaza.stackoverflowquestion;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.content.Intent;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Second question = new Second();
TextView boyname = (TextView)findViewById(R.id.boy);
boyname.setText(question.getboyname());
TextView girlname = (TextView)findViewById(R.id.girl);
girlname.setText(question.getgirlname());
}
public void yesclick(View v){
Intent click = new Intent(this, SecondActivity.class);
String boyname = ((TextView)findViewById(R.id.boy)).getText().toString();
click.putExtra("boyname", boyname);
String girlname = ((TextView)findViewById(R.id.girl)).getText().toString();
click.putExtra("girlname", girlname);
startActivity(click);
}
public void noclick(View v){
Intent click = new Intent(this, SecondActivity.class);
String boyname = ((TextView)findViewById(R.id.boy)).getText().toString();
click.putExtra("boyname", boyname);
String girlname = ((TextView)findViewById(R.id.girl)).getText().toString();
click.putExtra("girlname", girlname);
startActivity(click);
}
}
SecondActivity java
package gr.com.plaza.stackoverflowquestion;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.content.Intent;
public class SecondActivity extends AppCompatActivity {
Second question = new Second();
private int likes = question.getlikes();
private int dislikes = question.getdislikes();
private int count = question.getcounter();
private boolean isbuttonclicked = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Bundle mainactivitydata = getIntent().getExtras();
String boyname = mainactivitydata.getString("boyname");
TextView boynamesecond = (TextView)findViewById(R.id.boysecond);
boynamesecond.setText(boyname);
String girlname = mainactivitydata.getString("girlname");
TextView girlnamesecond = (TextView)findViewById(R.id.girlsecond);
girlnamesecond.setText(girlname);
Button like = (Button)findViewById(R.id.like);
Button dislike = (Button)findViewById(R.id.dislike);
like.setOnClickListener(
new Button.OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId() == R.id.like) {
isbuttonclicked = !isbuttonclicked;
TextView like = (TextView)findViewById(R.id.like);
like.setText(count+" " + likes++);
}
}
}
);
dislike.setOnClickListener(
new Button.OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId() == R.id.like) {
isbuttonclicked = !isbuttonclicked;
TextView dislike = (TextView)findViewById(R.id.dislike);
dislike.setText(count+" " + dislikes++);
}
}
}
);
}
public void answeredclick(View v){
Intent click = new Intent(this, MainActivity.class);
startActivity(click);
}
}
MainActivity xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://ift.tt/nIICcg"
xmlns:tools="http://ift.tt/LrGmb4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="gr.com.plaza.stackoverflowquestion.MainActivity"
android:id="@+id/main">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/boyname"
android:id="@+id/boy"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="61dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/girlname"
android:id="@+id/girl"
android:layout_below="@+id/boy"
android:layout_centerHorizontal="true"
android:layout_marginTop="49dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/yesbutton"
android:id="@+id/yes"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:onClick="yesclick" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nobutton"
android:id="@+id/no"
android:layout_below="@+id/yes"
android:layout_centerHorizontal="true"
android:layout_marginTop="39dp"
android:onClick="noclick" />
</RelativeLayout>
SecondActivity xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://ift.tt/nIICcg"
xmlns:tools="http://ift.tt/LrGmb4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="gr.com.plaza.stackoverflowquestion.SecondActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/boyname"
android:id="@+id/boysecond"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="61dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/girlname"
android:id="@+id/girlsecond"
android:layout_below="@+id/boysecond"
android:layout_centerHorizontal="true"
android:layout_marginTop="49dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/answered"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:onClick="answeredclick" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/likebutton"
android:id="@+id/like"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dislikebutton"
android:id="@+id/dislike"
android:layout_alignBottom="@+id/like"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
Second java
package gr.com.plaza.stackoverflowquestion;
import java.util.Random;
public class Second {
private String[] boyname = new String[]{
"George",
"Jim",
"Mike"
};
private String[] girlname = new String[]{
"Mary",
"Helen",
"Julia"
};
private int[] likes = new int[]{
0,
1,
2
};
private int[] dislikes = new int[]{
3,
4,
5
};
private int[] counter = new int[]{
6,
7,
8
};
public int randomindex = new Random().nextInt(boyname.length);
private String[] name = new String[]{
boyname[randomindex],
girlname[randomindex]
};
private int[] likability = new int[]{
likes[randomindex],
dislikes[randomindex],
counter[randomindex]
};
public String getboyname() {
return name[0];
}
public String getgirlname() {
return name[1];
}
public int getlikes() {
return likability[0];
}
public int getdislikes() {
return likability[1];
}
public int getcounter() {
return likability[2];
}
}
and AndroidManifest xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://ift.tt/nIICcg"
package="gr.com.plaza.stackoverflowquestion">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity"></activity>
</application>
</manifest>
sorry for the long post but I'm desperate
the only thing I've thought so far is a boolean that will make random generate a new number only if it is true but i don't know if that would work and also i'm not sure how to do it either. I want to thank everyone in advance
Aucun commentaire:
Enregistrer un commentaire