2017-12-26 1 views
0

Ich arbeite derzeit durch ein SeekBar Beispiel here. Dieses Beispiel hat eine Suchleiste, aber ich wollte sehen, was passieren würde, wenn ich zwei weitere Suchleisten hinzufügen würde.Drucken eines Variablennamens in einem Toast

Während die Zuhörer alle immer noch funktionieren, möchte ich den Namen der SeekBar zu dem Toast hinzufügen, der beim Verfolgen der Touch Bar angezeigt wird. Ich kann jedoch nicht einfach den Namen der Variablen zum Toast hinzufügen (das übergebene in seekBar ist ein Widget) und dies passt nicht zum Funktionsaufruf von toString().

Wie würde ich den Namen der seekBar, auf die ich mich konzentriere, dem Toast hinzufügen?

MainActivity.java:

package com.javatpoint.seekbar; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.SeekBar; 
import android.widget.SeekBar.OnSeekBarChangeListener; 
import android.widget.Toast; 
public class MainActivity extends Activity implements OnSeekBarChangeListener{ 
    SeekBar seekBar1, seekBar2, seekBar3; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     seekBar1=(SeekBar)findViewById(R.id.seekBar1); 
     seekBar1.setOnSeekBarChangeListener(this); 
     seekBar2=(SeekBar)findViewById(R.id.seekBar2); 
     seekBar2.setOnSeekBarChangeListener(this); 
     seekBar3=(SeekBar)findViewById(R.id.seekBar3); 
     seekBar3.setOnSeekBarChangeListener(this); 
} 
@Override 
public void onProgressChanged(SeekBar seekBar, int progress, 
     boolean fromUser) { 
    //This is where I want to print out the variable name 
    Toast.makeText(getApplicationContext(), "seekbar progress: "+progress, Toast.LENGTH_SHORT).show(); 
} 
@Override 
public void onStartTrackingTouch(SeekBar seekBar) { 
    Toast.makeText(getApplicationContext(),seekBar +"seekbar touch started!", Toast.LENGTH_SHORT).show(); 
} 
@Override 
public void onStopTrackingTouch(SeekBar seekBar) { 
    Toast.makeText(getApplicationContext(),"seekbar touch stopped!", Toast.LENGTH_SHORT).show(); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 
} 

activity_main.xml

<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="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<SeekBar 
    android:id="@+id/seekBar1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="120dp" /> 
<SeekBar 
    android:id="@+id/seekBar2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 

    android:layout_marginTop="50dp" 
    android:layout_below="@id/seekBar1"/> 
<SeekBar 
    android:id="@+id/seekBar3" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 

    android:layout_marginTop="50dp" 
    android:layout_below="@id/seekBar2"/> 

+0

Beachten Sie, dass Variablennamen sind in der Regel nur bei der Kompilierung-Zeit zur Verfügung. –

Antwort

0

Jemand einen Link zu this post gestern Abend veröffentlicht die Verwendung von Tags Detaillierung mein Problem zu lösen, aber leider sind sie Entweder hat sie ihren Beitrag entfernt oder sie wurde gelöscht, bevor ich sie als richtige Antwort markieren konnte.

Ich konnte die Info in diesem Beitrag verwenden, um eine Zeichenfolge als Tag für jede seekBar festzulegen, und dann übergeben Sie diese in eine neue Funktion, die das Tag sowie den Fortschritt von der Suchleiste zu verschiedenen Toasts für jede Suchleiste. Hier war die endgültige Version des MainActivity

package com.javatpoint.seekbar; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.SeekBar; 
import android.widget.SeekBar.OnSeekBarChangeListener; 
import android.widget.Toast; 
public class MainActivity extends Activity implements OnSeekBarChangeListener{ 
SeekBar seekBar1, seekBar2, seekBar3; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    seekBar1=(SeekBar)findViewById(R.id.seekBar1); 
    seekBar1.setOnSeekBarChangeListener(this); 
    seekBar1.setTag("1"); 
    seekBar2=(SeekBar)findViewById(R.id.seekBar2); 
    seekBar2.setOnSeekBarChangeListener(this); 
    seekBar2.setTag("2"); 
    seekBar3=(SeekBar)findViewById(R.id.seekBar3); 
    seekBar3.setOnSeekBarChangeListener(this); 
    seekBar3.setTag("3"); 
} 
@Override 
public void onProgressChanged(SeekBar seekBar, int progress, 
     boolean fromUser) { 
    changeValue(seekBar.getTag(), progress); 
} 
@Override 
public void onStartTrackingTouch(SeekBar seekBar) { 
    Toast.makeText(getApplicationContext(),"seekbar touch started!", Toast.LENGTH_SHORT).show(); 
} 
@Override 
public void onStopTrackingTouch(SeekBar seekBar) { 
    Toast.makeText(getApplicationContext(),"seekbar touch stopped!", Toast.LENGTH_SHORT).show(); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 
public void changeValue(Object a, int progress){ 
    if(a=="1"){ 
     Toast.makeText(getApplicationContext(), "seekbar1 progress: "+progress, Toast.LENGTH_SHORT).show(); 
    } 
    if(a=="2"){ 
     Toast.makeText(getApplicationContext(), "seekbar2 progress: "+progress, Toast.LENGTH_SHORT).show(); 
    } 
    if(a=="3"){ 
     Toast.makeText(getApplicationContext(), "seekbar3 progress: "+progress, Toast.LENGTH_SHORT).show(); 
    } 
} 

}

Verwandte Themen