Rady a tipy pro vyvoj ⇒ potize s vyvojem aplikace, uzivatelsky vstup
Moderátoři: mArtinko5MB, mArtinko5MB
- Crusty
- Robot
- Příspěvky: 938
- Registrován: ned 19. črc 2009 17:30:40
- Typ mobilu / ROM: Redmi Note 9 Pro
- Bydliště: Praha
- Kontaktovat uživatele:
Re: potize s vyvojem aplikace, uzivatelsky vstup
tak to uz si na to budes muset asi udelat Custom View a kreslit to programove, to uz je celkem slozity orisek. Nebo se kouknout, jestli na to existuje nejaka knihovna
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Kdybys mi nasel jednoduchy example code pro MainActivity.java tak bys byl nejlepsi
- Crusty
- Robot
- Příspěvky: 938
- Registrován: ned 19. črc 2009 17:30:40
- Typ mobilu / ROM: Redmi Note 9 Pro
- Bydliště: Praha
- Kontaktovat uživatele:
Re: potize s vyvojem aplikace, uzivatelsky vstup
no na tohle uz to musis nastudovat, na to uz nic moc jednoducheho nejde.
Ale tak muzes zacit zde
https://developer.android.com/guide/top ... components
pak treba tady
https://www.raywenderlich.com/142-andro ... w-tutorial
https://www.vogella.com/tutorials/Andro ... ticle.html
a dalsi dohledat
https://www.google.com/search?q=android ... ustom+view
Ale tak muzes zacit zde
https://developer.android.com/guide/top ... components
pak treba tady
https://www.raywenderlich.com/142-andro ... w-tutorial
https://www.vogella.com/tutorials/Andro ... ticle.html
a dalsi dohledat
https://www.google.com/search?q=android ... ustom+view
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
A kdybych chtel vykreslit aspon jedno recke pismenko s indexem:
$\mu_i$
tak to neni o moc snazsi ?
Z linku cos mi poslal moc moudry nejsem.
$\mu_i$
tak to neni o moc snazsi ?
Z linku cos mi poslal moc moudry nejsem.
- Crusty
- Robot
- Příspěvky: 938
- Registrován: ned 19. črc 2009 17:30:40
- Typ mobilu / ROM: Redmi Note 9 Pro
- Bydliště: Praha
- Kontaktovat uživatele:
Re: potize s vyvojem aplikace, uzivatelsky vstup
tak muzes zkusit TextView ... nastavit mu font, ktery tyto pismena umi a pak by to asi jit melo
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Muzes mi sem prosimte hodit nejaky kousek kodu v xmlku , nevim kde zacit.
Staci vypsat $\mu_i$
Diky
Staci vypsat $\mu_i$
Diky
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Kdyz nevis co je $\mu$ tak zkus $\lambda_i$
Kdyz vsechny ty navody jsou priserne komplikovane
20 bytu musi na vypsani toho pismenka prece stacit, ne ?
Kdyz vsechny ty navody jsou priserne komplikovane
20 bytu musi na vypsani toho pismenka prece stacit, ne ?
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Crusty, jak to, ze si Google PLay Console nepamatuje obsah popisku aplikace ani Iconky do ni vlozene ??
- Přílohy
-
- 111.jpg (47.12 KiB) Zobrazeno 8029 x
- Crusty
- Robot
- Příspěvky: 938
- Registrován: ned 19. črc 2009 17:30:40
- Typ mobilu / ROM: Redmi Note 9 Pro
- Bydliště: Praha
- Kontaktovat uživatele:
Re: potize s vyvojem aplikace, uzivatelsky vstup
pamatuje, mozna jsi jen nedal Save? Nevim jak jsi postupoval
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Save jsem urcite dal, jinak bych se neptal.
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Pri sejvnuti se tam objevuje takovato chybova hlaska:
- Přílohy
-
- 111.jpg (81.92 KiB) Zobrazeno 8015 x
- Crusty
- Robot
- Příspěvky: 938
- Registrován: ned 19. črc 2009 17:30:40
- Typ mobilu / ROM: Redmi Note 9 Pro
- Bydliště: Praha
- Kontaktovat uživatele:
Re: potize s vyvojem aplikace, uzivatelsky vstup
tak mozna maj nejakou docasnou chybu, vypadek, zkus pozdeji
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Crusty mam jeste jeden problem, umel bys premenit
premenit na ?
Na Google PLay jim to pada a mohlo by to byt timto. Staci, kdyz premenis ten onClick4, ostatni si udelam sam.
Neumim ten onClcikListener moc pouzivat byl jsem zvykly na.
Prikladam MainActivity i XMLko:
MainActivity:
Kód: Vybrat vše
android:onClick="click4"
Kód: Vybrat vše
onClcikLIstener
Na Google PLay jim to pada a mohlo by to byt timto. Staci, kdyz premenis ten onClick4, ostatni si udelam sam.
Neumim ten onClcikListener moc pouzivat byl jsem zvykly na
Kód: Vybrat vše
android::onClick="click4"
Prikladam MainActivity i XMLko:
Kód: Vybrat vše
<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="bottom|fill_horizontal"
android:layout_span="@integer/material_motion_duration_long_2"
android:background="#FFFFFF"
android:backgroundTint="#FFFFFF"
android:backgroundTintMode="multiply"
android:foregroundGravity="fill_horizontal|center_horizontal"
android:foregroundTint="@color/purple_200"
android:foregroundTintMode="multiply"
android:requiresFadingEdge="vertical"
android:scrollbarDefaultDelayBeforeFade="10"
android:visibility="visible">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnSpan="4"
android:layout_columnWeight="12"
android:accessibilityLiveRegion="none"
android:orientation="vertical">
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="fill_parent"
android:layout_height="match_parent"></TableLayout>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="#1DE9B6"
android:onClick="click2"
android:text="Generate"
android:textColor="#000000"
android:textSize="10dp" />
<EditText
android:id="@+id/simpleEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:digits="10"
android:hint="Number of coalitions appear here"
android:inputType="text"
android:minHeight="48dp"
android:textColor="#FF0000" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnSpan="12"
android:layout_columnWeight="12"
android:accessibilityLiveRegion="none"
android:inputType="textCapCharacters"
android:orientation="horizontal">
<Button
android:id="@+id/button4"
android:layout_width="25mm"
android:layout_height="wrap_content"
android:foregroundTint="#FF0000"
android:foregroundTintMode="src_over"
android:onClick="click4"
android:scrollbarDefaultDelayBeforeFade="4"
android:text="Increase"
android:textSize="11dp" />
<Button
android:id="@+id/button7"
android:layout_width="25mm"
android:layout_height="wrap_content"
android:foregroundTint="#FF0000"
android:foregroundTintMode="src_over"
android:onClick="click7"
android:scrollbarDefaultDelayBeforeFade="4"
android:text="Decrease"
android:textSize="11dp" />
</LinearLayout>
<Button
android:id="@+id/button5"
android:layout_width="50mm"
android:layout_height="wrap_content"
android:backgroundTint="#00E5FF"
android:backgroundTintMode="add"
android:onClick="click5"
android:text="Power indices" />
<TextView
android:id="@+id/textView6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:text="Shapley, Banzhaf and Coleman" />
<TextView
android:id="@+id/tvMarque"
android:layout_width="50mm"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:layout_gravity="center_horizontal"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:padding="5dp"
android:textSize="16sp"
android:text="AHA"
android:visibility="visible" />
<TextView
android:id="@+id/tvMarque2"
android:layout_width="24mm"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:textColor="#00E5FF"
android:layout_gravity="center_horizontal"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:padding="15dp"
android:textSize="12sp"
android:text="AHA2"
android:visibility="visible" />
<TextView
android:id="@+id/blink"
android:layout_width="50mm"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:layout_gravity="center_horizontal"
android:fadingEdge="horizontal"
android:textColor="#00E5FF"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:padding="5dp"
android:textSize="16sp"
android:text=" **"
android:visibility="invisible" />
</LinearLayout>
</ScrollView>
MainActivity:
Kód: Vybrat vše
package com.example.tablelayout6;
import static java.lang.Integer.toBinaryString;
import androidx.appcompat.app.AppCompatActivity;
import android.animation.ArgbEvaluator;
import android.animation.TimeAnimator;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Html;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextPaint;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.widget.EditText;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.TableLayout;
import android.text.TextUtils;
public class MainActivity extends AppCompatActivity {
public boolean g = true;
public Integer N = 1;
public String a = "2";
private EditText editText1;
private EditText linear;
private Integer[] hodnoty = new Integer[10];
private String[] koal = new String[10];
private float[] shap = new float[10];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
View blink = findViewById(R.id.blink);
blink.setVisibility(blink.getVisibility() == View.VISIBLE ? View.INVISIBLE : View.VISIBLE);
handler.postDelayed(this, 100);
}
}, 100);
*/
}
public boolean iswinning(Integer J, int ii) {
return true;
}
public Integer fact(Integer f) {
if (f == 0) return 1;
else return f * fact((Integer) (f - 1));
}
//T pocetHracu
// public Integer[] S = new Integer[toBinaryString(N - 1).length()];
public boolean areDisjoint(Integer I,Integer J) {
int pocetHracu= toBinaryString(N-1).length();
String StringPadded1=stf(toBinaryString(I),pocetHracu- toBinaryString(I).length());
String StringPadded2=stf(toBinaryString(J),pocetHracu- toBinaryString(J).length());
Integer[] koal1= stringToArray(StringPadded1);
Integer[] koal2= stringToArray(StringPadded2);
for(int i=0;i<pocetHracu;i++) {
if (koal1[i]==1 & koal2[i]==1) {
return false;
}
}
return true;
}
public Integer union(Integer I,Integer J) {
int pocetHracu= toBinaryString(N-1).length();
String StringPadded1=stf(toBinaryString(I),pocetHracu- toBinaryString(I).length());
String StringPadded2=stf(toBinaryString(J),pocetHracu- toBinaryString(J).length());
String StringPaddedVysl=stf(toBinaryString(0),pocetHracu-1);
Integer[] koal1= stringToArray(StringPadded1);
Integer[] koal2= stringToArray(StringPadded2);
Integer[] koalVysl=stringToArray(StringPaddedVysl);
Integer vysl=0;
for(int i=0;i<pocetHracu;i++) {
// koalVysl[i]=koal1[i]+koal2[i];
vysl+=power(pocetHracu-1-i)*(koal1[i]+koal2[i]);
}
// vysl=4*(koal1[0]+koal2[0])+2*(koal1[1]+koal2[1])+(koal1[2]+koal2[2]);
return vysl;
}
public Integer power(Integer p) {
if(p==0) {
return 1;
}
return 2*power(p-1);
}
public float K1=0, K2=0, K3=0, K4, K5;
public boolean isSA(float[] vyhryKoalici) {
for(Integer I=0;I<N;I++) {
for(Integer J=0;J<N;J++) {
if(areDisjoint(I,J)) {
if (vyhryKoalici[union(I,J)]<vyhryKoalici[I]+vyhryKoalici[J]) {
K1=union(I,J);K2=vyhryKoalici[I];K3=vyhryKoalici[J];
return false;
}
}
}
}
return true;
}
public Integer[] stringToArray(String binary) {
Integer[] arrayOfPLayers=new Integer[binary.length()];
for(int i=0;i<binary.length();i++) {
arrayOfPLayers[i]=Integer.parseInt("" + binary.charAt(i));
}
return arrayOfPLayers;
}
//N je pocet koalici
public void click5(View view) {
int pocetHracu= toBinaryString(N-1).length();
Integer[][] koalice=new Integer[N][pocetHracu];
Integer[][] koalice2=new Integer[N][pocetHracu];
Integer[][] koalice3=new Integer[N][pocetHracu];
for (Integer ith=0;ith<N;ith++) {
for(Integer T=0;T<pocetHracu;T++) {
String StringPadded=stf(toBinaryString(ith),pocetHracu- toBinaryString(ith).length());
koalice[ith][T]=stringToArray(StringPadded)[T];
koalice2[ith][T]=stringToArray(StringPadded)[T];
koalice3[ith][T]=stringToArray(StringPadded)[T];
}
}
float[] shap=new float[pocetHracu];
float[] vyhryKoalici = new float[N];
Integer[] isSwing=new Integer[pocetHracu];
for (int i=0; i<N;i++) {
editText1 = (EditText) findViewById(330+i);
String a=editText1.getText().toString();
float f1 = Float.parseFloat(a);
vyhryKoalici[i]=f1;
}
Integer[] kolikJeSwingu= new Integer[pocetHracu];
String S="";
String kde="j";
Integer jth;
for (int p = 0; p < pocetHracu; p++) {
isSwing[p] =0;
kolikJeSwingu[p]=N;
}
// Integer swingove2=pocetHracu*N;
Integer bool=1;
Integer canBanzhaf=1;
for(Integer contr=0;contr<N;contr++)
{
if(vyhryKoalici[contr]!=0 && vyhryKoalici[contr]!=1) {
canBanzhaf=0;
}
}
for(Integer T=0;T<pocetHracu;T++) {
for (Integer ith = 0; ith < N; ith++) {
bool = 1;
//vyhryKoalici[ith];
//musis najit jth<N pro ktere koalice3[jth]=S-ith
if ((koalice[ith][T] == 1) && (vyhryKoalici[ith]==1)) {
koalice3[ith][T] = 0;
for (jth = 0; jth < N; jth++) {
for (Integer k = 0; k < pocetHracu; k++)
{
//if (k != T && koalice[ith][k] != koalice3[jth][k]) {
if ((k != T) && (koalice[ith][k] != koalice3[jth][k])) {
bool = 0;
// swingove2--;
kde+="\nk"+k.toString()+"T"+T.toString()+">";
}
}
kde+="\njth"+jth.toString()+"ith"+ith.toString()+"T"+T.toString();
//(vyhryKoalici[jth]
if ((vyhryKoalici[jth]==0) && (bool == 1)) {
isSwing[T]++;
}
bool=1;
}
koalice3[ith][T]=1;
bool=1;
}
}
}
//kolikJeSwingu(Integer TmaSwing, Integer pocetHracu, Integer pocetKoalici,
// Integer[][] koal, Integer[] koalicePriKtereJeSwing, float[] vyhryKoal)
for (Integer ith = 0; ith < N; ith++) {
for(Integer T=0;T<pocetHracu;T++) {
//isSwingBool(Integer kteraKoalice, Integer TmaSwing, Integer pocetHracu, Integer pocetKoalici,
// Integer[][] koal, Integer[] koalicePriKtereJeSwing, float[] vyhryKoal) {
// kolikJeSwingu[T]+=kolikJeSwingu(T, pocetHracu, N,
// koalice, koalice[ith],vyhryKoalici);
if (koalice[ith][T] == 1) {
koalice2[ith][T] = 0;
for (jth = 0; jth < N; jth++) {
bool = 1;
for (int k = 0; k < pocetHracu; k++) {
if (k != T && koalice[ith][k] != koalice2[jth][k]) {
bool = 0;
}
}
int bool2=0;
koalice2[ith][T] = 1;
if (vyhryKoalici[ith] == 1 && vyhryKoalici[jth] == 0) {
for (int k = 0; k < pocetHracu; k++) {
if (koalice[ith][k] != koalice2[jth][k]) {
bool2++;
}
}
// if(bool2==1) {
// isSwing[T]++;
// }
}
koalice2[ith][T] = 1;
Integer t = 0;
for (int p = 0; p < pocetHracu; p++) {
t += koalice[ith][p];
}
// Integer[] isSwing=new Integer[pocetHracu];
if (bool == 1) {
shap[T] += (float) ((float) fact(t - 1) * fact(pocetHracu - t) / (float) (fact(pocetHracu)) * (float) (vyhryKoalici[ith] - vyhryKoalici[jth]));
}
}
}
}
}
S+="here";
String T2="";
T2+="banzhaf";
Integer swingove=0;
Integer totWin=0;
Integer totLos=0;
for(int p=0;p<pocetHracu;p++) {
swingove+=isSwing[p];
}
for(int i=0;i<N;i++) {
if(vyhryKoalici[i]==1) {
totWin++;
}
if(vyhryKoalici[i]==0) {
totLos++;
}
}
String strPokus="";
String strPokusColWin="";
String strPokusColLos="";
if(canBanzhaf==1) {
strPokus = "banzhaf ";
strPokusColWin="coleman winning ";
strPokusColLos="coleman loosing ";
} else {
strPokus="banzhaf err ";
strPokusColWin="coleman winning err ";
strPokusColLos="coleman loosing err ";
}
float[] banzh=new float[pocetHracu];
float[] colemanWin=new float[pocetHracu];
float[] colemanLos=new float[pocetHracu];
for(int p=0;p<pocetHracu;p++)
{
banzh[p]=(float) isSwing[p]/(float) swingove;
colemanWin[p]=(float) isSwing[p]/(float) totWin;
colemanLos[p]=(float) isSwing[p]/(float) totLos;
}
String strPokus2="shap ";
for(int i=0;i<pocetHracu;i++) {
// S+=(" "+String.valueOf(shap[i]));
strPokus2+=String.format("%.2f ",shap[i]);
strPokus+=String.format("%.2f ",banzh[i]);
strPokusColWin+=String.format("%.2f ",colemanWin[i]);
strPokusColLos+=String.format("%.2f ",colemanLos[i]);
}
// tv6.setText(strPokus2+"\n"+strPokus+"\nswing"+isSwing[0]+"swingPrvni:"+isSwing[1]+"\nH"+swingove);
TextView tv6 = (TextView) findViewById(R.id.tvMarque);
// tv6.setSingleLine(true);
tv6.setMarqueeRepeatLimit(-1);
tv6.setEllipsize(TextUtils.TruncateAt.MARQUEE);
tv6.setSelected(true);
String SA;
if(isSA(vyhryKoalici)) {
SA="";
}
else {
SA="here superadditivity fails "+(int) K1+" "+K2+" "+K3;
}
tv6.setText(strPokus2+"\n"+strPokus+"\n"+strPokusColWin+"\n"+strPokusColLos+"\n"+"number of winning "+totWin+"\n"+"number of loosing "+totLos+"\nis super additve "+isSA(vyhryKoalici)+"\n"+SA);
TextView tv7 = (TextView) findViewById(R.id.tvMarque2);
tv7.setSingleLine(true);
tv7.setMarqueeRepeatLimit(-1);
tv7.setEllipsize(TextUtils.TruncateAt.MARQUEE);
tv7.setSelected(true);
// tv7.setText(" * * * * * * * * * ");
// tv7.setText(Html.fromHtml(" * * * * * <b><p style=color:yellow;>*</p></b> * * * "));
// tv7.setText(Html.fromHtml("**<p style=color:green;> * T*</p>\n<ul><li>* * * <p style=color:green;>*</p> <p style=color:red;>*</p>* * * </li></ul>"));
// tv7.setText(Html.fromHtml("**<p style=color:green> * T*</p>\n<ul><li>* * * <p style=color:green;>*</p> <p style=color:red;>*</p>* * * </li></ul>"));
SpannableStringBuilder ssb = new SpannableStringBuilder();
ssb.append(Html.fromHtml("**<p style=color:green> * **</p>\n<ul><li>* * * <p style=color:green;>*</p> <p style=color:red;>*</p>* * * </li></ul>"));
int blinkTextIndex = 6;
ssb.setSpan(new FCS(tv7, new int[] {Color.RED, Color.YELLOW}), blinkTextIndex, blinkTextIndex + 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv7.setText(ssb);
// String html = "<html><body><p>Hello world</p></body></html>";
// String baseUrl = "https://example.com/";
// WebView mWebView;
// mWebView.loadDataWithBaseURL(baseUrl, html, "text/html", null, baseUrl);
//tv6.setText("11bbbb"+"bDDDDDDDjjjjjjjjjjppppppppppppppDDbbbbbbbbbb");
// TextView textView=(TextView)findViewById(R.id.text_test);
/* tv6.setEllipsize(TextUtils.TruncateAt.MARQUEE);
tv6.setSingleLine(true);
tv6.setMarqueeRepeatLimit(-1);
tv6.setFocusableInTouchMode(true);
tv6.setFocusable(true);
*/
/* TextView txt = new TextView(this);
txt.setText("This is the infinite marquee");
txt.setEllipsize(TextUtils.TruncateAt.MARQUEE);
txt.setSingleLine(true);
txt.setMarqueeRepeatLimit(-1);
txt.setSelected(true);
*/
}
public void click4(View view) {
//
if (g) {
linear = (EditText) findViewById(R.id.simpleEditText);
if (N == 1) {
linear.setText("1");
}
String a = linear.getText().toString();
N = Integer.parseInt(a);
N++;
linear.setText(N.toString());
}
}
public void click7(View view) {
if (g) {
//
linear = (EditText) findViewById(R.id.simpleEditText);
if (N == 0 || N == 1) {
linear.setText("1");
}
String a = linear.getText().toString();
N = Integer.parseInt(a);
if (N > 1) N--;
linear.setText(N.toString());
}
}
public String stf(String a,Integer l) {
if(l==0) { return a; }
l--;
return stf("0"+a,l);
}
public void click2(View view) {
if (g) {
g = false;
String col1;
String col2;
// String playerChanged;
TableLayout tl = (TableLayout) findViewById(R.id.tableLayout1);
EditText editText = (EditText) findViewById(R.id.simpleEditText);
TableRow row = new TableRow(this);
TextView tv = new TextView(this);
TextView c = new TextView(this);
//EditText etUserInfoNewValue = (EditText)findViewById(R.id.simpleEditText);
// a = editText.getText().toString();
// tv.setId(202);
tv.setText("This is text");
//
tl.addView(row);
row.addView(tv);
int sf = toBinaryString(N - 1).length();
for (int x = 0; x < N; x++) {
//String.format("%010d",(
String jl = toBinaryString(x);
String jl2 = stf(jl, sf - jl.length());
//koal[x]=jl2;
col1 = "(" + x + ")" + jl2;
// col1 = "(" + x + ")"+Integer.toBinaryString(x);
col2 = "1";
//col3 = "(" + x + ") Column 3";
//col4 = "(" + x + ") Column 4";
TableRow newRow = new TableRow(this);
TextView column1 = new TextView(this);
TextView column2 = new TextView(this);
EditText editText1 = new EditText(this);
editText1.setId(330 + x);
// String stringAnswer = editText1.getText().toString();
TextView column3 = new TextView(this);
// TextView column4 = new TextView(this);
editText1.setText("0 ");
column1.setText(col1);
column1.setText(col1);
column2.setText(col2);
//column3.setText(col3);
//column4.setText(col4);
// column1.setText(stringAnswer);
newRow.addView(column1);
newRow.addView(editText1);
newRow.addView(column3);
// newRow.addView(column4);
tl.addView(newRow, new TableLayout.LayoutParams());
}
}
}
}
class FCS extends ForegroundColorSpan implements TimeAnimator.TimeListener {
private TextView tv;
private int[] colors;
private int color;
TimeAnimator animator;
ArgbEvaluator evaluator;
public FCS(TextView tv, int[] colors) {
super(colors[0]);
this.tv = tv;
this.colors = colors;
animator = new TimeAnimator();
animator.setTimeListener(this);
evaluator = new ArgbEvaluator();
animator.start();
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(color);
}
@Override
public void onTimeUpdate(TimeAnimator animation, long totalTime, long deltaTime) {
float sin = (float) (Math.sin(Math.PI * totalTime / 400f));
float fraction = sin * sin;
// float fraction = (float) (-Math.cos(2*Math.PI * totalTime / 1000f) + 1) / 2f;
color = (int) evaluator.evaluate(fraction, colors[0], colors[1]);
tv.invalidate();
if (totalTime < -1) {
animator.end();
}
}
}
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Vse funguje
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Crusty, poradis mi prosimte jeste s fragmenty ?
Napovedy v Googu a knihach jsou zdlouhave a srozumitelnou odpoved jsem nenasel.
Chci mit tlacitko ktere prepne puvodni fragment na jiny.
Za tim ucelem jsem vytvoril zvlastni xmlko s nazvem
fragment_one.xml na ktery by se stisknutim nejakeho buttonu melo prepnout,
a do acitivity_main.xml jsem dal tento odstavec:
Nyni aplikace pada uz pri spusteni. Co musim jeste pridat do MainActivity.java, je to tim, ze mi tam neco chybi,
nebo snad je neco spatne v tech dvou .xmlkach ? Co je treba doplnit/opravit aby to fungovalo ?
Dekuji predem
Napovedy v Googu a knihach jsou zdlouhave a srozumitelnou odpoved jsem nenasel.
Chci mit tlacitko ktere prepne puvodni fragment na jiny.
Za tim ucelem jsem vytvoril zvlastni xmlko s nazvem
fragment_one.xml na ktery by se stisknutim nejakeho buttonu melo prepnout,
a do acitivity_main.xml jsem dal tento odstavec:
Kód: Vybrat vše
<fragment
android:name="com.example.ExampleFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/example_fragment"
tools:layout="@layout/fragment_one"
/>
Nyni aplikace pada uz pri spusteni. Co musim jeste pridat do MainActivity.java, je to tim, ze mi tam neco chybi,
nebo snad je neco spatne v tech dvou .xmlkach ? Co je treba doplnit/opravit aby to fungovalo ?
Dekuji predem
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Crusty, nakonec jsem si vytvoril podle sablony `tabbed Activity` ale nevim jak elegantne zahrnout ty dva soubory
MainActivity.java a main_activity.xml do tech novych dvou plus techto: ExampleInstrumentedTest.java PageViewModel.java
Poradis prosimte ?
Jde to pomoci `import Neco`
diky
MainActivity.java a main_activity.xml do tech novych dvou plus techto: ExampleInstrumentedTest.java PageViewModel.java
Poradis prosimte ?
Jde to pomoci `import Neco`
diky
- Crusty
- Robot
- Příspěvky: 938
- Registrován: ned 19. črc 2009 17:30:40
- Typ mobilu / ROM: Redmi Note 9 Pro
- Bydliště: Praha
- Kontaktovat uživatele:
Re: potize s vyvojem aplikace, uzivatelsky vstup
tady se doctes o Fragmentech
https://developer.android.com/guide/fra ... tions#java
https://developer.android.com/guide/fra ... tions#java
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Takovych navodu jsem nasel plno, ale zadny srozumitelny. Vse co potrebuji je vlozit satrou MainActivity.java
do nove, kterou jsem zkopiroval nize. POtrebuji videt nejakou syntaxi typu
import MainActivity2.java
nebo podobne.
Kdyby slo o jedinou classu tak ji tam proste zkopiruji, ale toto jsou dva kompletni baliky
MainActivity.java a acitivity_main.xml, a ja nevim jak je tamm vlozim
do nove, kterou jsem zkopiroval nize. POtrebuji videt nejakou syntaxi typu
import MainActivity2.java
nebo podobne.
Kdyby slo o jedinou classu tak ji tam proste zkopiruji, ale toto jsou dva kompletni baliky
MainActivity.java a acitivity_main.xml, a ja nevim jak je tamm vlozim
Kód: Vybrat vše
package com.exampleC.tablelayout8;
import android.os.Bundle;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.tabs.TabLayout;
import androidx.viewpager.widget.ViewPager;
import androidx.appcompat.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import com.exampleC.tablelayout8.ui.main.SectionsPagerAdapter;
import com.exampleC.tablelayout8.databinding.ActivityMainBinding;
public class MainActivity extends AppCompatActivity {
private ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager());
ViewPager viewPager = binding.viewPager;
viewPager.setAdapter(sectionsPagerAdapter);
TabLayout tabs = binding.tabs;
tabs.setupWithViewPager(viewPager);
FloatingActionButton fab = binding.fab;
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
}
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Crusty, mam jeste jeden pro me slozity problem.
mam nasledujici 4 soubory, ktere jsem hodil na pastebin.
Chtel jsem abych mel v tom Activity.main tlacitko ktere se z activity_main.xml prepne do fragment_blank.xml,
a v fragment_blank.xml tlkacitko kterym se prepnu nazpet.
Umim to udelat pro retezce ale ne pro komplexni package s buttony a TextAreami.
Kdybys mi sem hodil reseni a oznacil ################# zmeny oproti vychozimu souboru budu jen rad.
[1]activity_main.xml
[2]MainActivity.java
[3]fragment_blank.xml
[4]BlankFragment.java
activity_main.xml https://pastebin.com/PM4zVWYH
fragment_blank.xml https://pastebin.com/TNBmhX0G
BlankFragment.java https://pastebin.com/GCBcAu3D
MainActivity.java https://pastebin.com/hXEkf84B
mam nasledujici 4 soubory, ktere jsem hodil na pastebin.
Chtel jsem abych mel v tom Activity.main tlacitko ktere se z activity_main.xml prepne do fragment_blank.xml,
a v fragment_blank.xml tlkacitko kterym se prepnu nazpet.
Umim to udelat pro retezce ale ne pro komplexni package s buttony a TextAreami.
Kdybys mi sem hodil reseni a oznacil ################# zmeny oproti vychozimu souboru budu jen rad.
[1]activity_main.xml
[2]MainActivity.java
[3]fragment_blank.xml
[4]BlankFragment.java
activity_main.xml https://pastebin.com/PM4zVWYH
fragment_blank.xml https://pastebin.com/TNBmhX0G
BlankFragment.java https://pastebin.com/GCBcAu3D
MainActivity.java https://pastebin.com/hXEkf84B
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Takze sem si naimportoval puvodni project jako modul do noveho, ale nevim, jak ho pouzit.
Napriklad jak mam zaridit, aby se ve fragment1.xml objevovalo main_activity.xml z puvodniho a jak zavolam funkce z puvodniho
naimportvaneho v novem projektu.
Napriklad jak mam zaridit, aby se ve fragment1.xml objevovalo main_activity.xml z puvodniho a jak zavolam funkce z puvodniho
naimportvaneho v novem projektu.
Kód: Vybrat vše
include ':app'
rootProject.name = "fragments"
include ':app8'
- Crusty
- Robot
- Příspěvky: 938
- Registrován: ned 19. črc 2009 17:30:40
- Typ mobilu / ROM: Redmi Note 9 Pro
- Bydliště: Praha
- Kontaktovat uživatele:
Re: potize s vyvojem aplikace, uzivatelsky vstup
nemam ted moc cas, tak budes muset kolem toho neco nastudovat
napr
https://www.vogella.com/tutorials/Andro ... ticle.html
v zakladu, bud mas vic Activity, ktere se pak spousti pres startActivity(), nebo v jedne Activity chces vic Fragmentu, coz je pres
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
napr
https://www.vogella.com/tutorials/Andro ... ticle.html
v zakladu, bud mas vic Activity, ktere se pak spousti pres startActivity(), nebo v jedne Activity chces vic Fragmentu, coz je pres
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Crusty Tvoje rada rozhodnout se, zda mit vice Activit ci vice Fragmentu byla naprosto presna.
Mam ted funkcni apku jak jsem chtel s tou drobnou chybou, ze obcas crashne.
Jak zjistim proc presne ?
A jeste chci do xml1 vlozit obrazek pdf ci jpg, jak toho docilim ?
Mam tam toto, ale obrazek se nezorazuje
Mam ted funkcni apku jak jsem chtel s tou drobnou chybou, ze obcas crashne.
Jak zjistim proc presne ?
A jeste chci do xml1 vlozit obrazek pdf ci jpg, jak toho docilim ?
Mam tam toto, ale obrazek se nezorazuje
- Přílohy
-
- 111.jpg (443.61 KiB) Zobrazeno 6468 x
-
- Stálý androiďák
- Příspěvky: 55
- Registrován: čtv 17. úno 2022 18:15:35
- Typ mobilu / ROM: flizp z 3 samsung
Re: potize s vyvojem aplikace, uzivatelsky vstup
Crusty appka je hotova. Mam ale potiz:
toto negeneruje
"generate signed bundle/apk" ==release== ale jen debug a intermediate.
Jak to.
toto negeneruje
"generate signed bundle/apk" ==release== ale jen debug a intermediate.
Jak to.
- Přílohy
-
- 111.jpg (88.32 KiB) Zobrazeno 5387 x