H
Hermi
Neues Mitglied
Hallo zusammen,
ich hab dieses Thema jetzt mal in einen eigenen Thread gepackt, da es doch etwas in die Java-Grundlagen geht.
Zur Vorgeschichte:
ich hab ein Tab-Layout das im main so bedient wird:
Somit wird für jeden Tab eine eigene Activity erzeugt, die dann z.B. so aussieht:
Jetzt will ich aus der einen Activity eine Metode aus einer anderen nutzen, da ich beim Drücken eines Knopfes auf einem anderen Tab den Inhalt ändern möchte.
Das geht alles gut, wenn ich die Methode als static definiere, jedoch lassen sich dann keine Systemmethoden wie z.B. findViewById nutzen, da dann die Fehlermeldung
kommt.
Wie macht ihr das?
Der ursprüngliche Beitrag von 07:14 Uhr wurde um 07:15 Uhr ergänzt:
Wenn ich jetzt noch den Thematitel richtig geschrieben hätte....


ich hab dieses Thema jetzt mal in einen eigenen Thread gepackt, da es doch etwas in die Java-Grundlagen geht.
Zur Vorgeschichte:
ich hab ein Tab-Layout das im main so bedient wird:
Code:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TabHost tabHost = getTabHost();
// Tab1
TabSpec tab1 = tabHost.newTabSpec("Tab1");
// setting Title and Icon for the Tab
tab1.setIndicator(getResources().getString(R.string.tabStatus), getResources().getDrawable(R.drawable.ic_launcher));
Intent tab1Intent = new Intent(this, Status.class);
tab1.setContent(tab1Intent);
// Tab2
TabSpec tab2 = tabHost.newTabSpec("Tab2");
tab2.setIndicator(getResources().getString(R.string.tabLayout), getResources().getDrawable(R.drawable.ic_launcher));
Intent tab2Intent = new Intent(this, Layout.class);
tab2.setContent(tab2Intent);
// Tab3
TabSpec tab3 = tabHost.newTabSpec("Tab3");
tab3.setIndicator(getResources().getString(R.string.tabFunktion), getResources().getDrawable(R.drawable.ic_launcher));
Intent tab3Intent = new Intent(this, Funktion.class);
tab3.setContent(tab3Intent);
// Tab6
TabSpec tab6 = tabHost.newTabSpec("Tab6");
tab6.setIndicator(getResources().getString(R.string.tabCode), getResources().getDrawable(R.drawable.ic_launcher));
Intent tab6Intent = new Intent(this, Code.class);
tab6.setContent(tab6Intent);
// Tab9
TabSpec tab9 = tabHost.newTabSpec("Tab9");
tab9.setIndicator(getResources().getString(R.string.tabService), getResources().getDrawable(R.drawable.ic_launcher));
Intent tab9Intent = new Intent(this, Service.class);
tab9.setContent(tab9Intent);
// Adding all TabSpec to TabHost
tabHost.addTab(tab1);
tabHost.addTab(tab2);
tabHost.addTab(tab3);
tabHost.addTab(tab6);
tabHost.addTab(tab9);
Code:
public class Code extends Activity {
private static String TAG = "Code";
boolean geklickt = false;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.code);
Button test = (Button) findViewById(R.id.button1);
final ImageView led1 = (ImageView) findViewById(R.id.imageView1);
test.setOnLongClickListener( new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Log.d(TAG, "onLongClick: " + String.valueOf( v ));
geklickt = true;
led1.setImageResource(R.drawable.btn_radio_blu_on);
return false;
}
});
Das geht alles gut, wenn ich die Methode als static definiere, jedoch lassen sich dann keine Systemmethoden wie z.B. findViewById nutzen, da dann die Fehlermeldung
Code:
[SIZE=1]Cannot make a static reference to the non-static method findViewById(int) from the type Activity[/SIZE]
Wie macht ihr das?
Der ursprüngliche Beitrag von 07:14 Uhr wurde um 07:15 Uhr ergänzt:
Wenn ich jetzt noch den Thematitel richtig geschrieben hätte....

