Cannot make a static reference to the non-static method neuesGebiet(View) from the ty

  • 2 Antworten
  • Letztes Antwortdatum
G

Gameraco

Neues Mitglied
0
Hallo ich bekomme diesen Fehler in der Klasse NeuesGebiet:

Cannot make a static reference to the non-static method neuesGebiet(View) from the type MainActivity

Hier ist der Code:
Code:
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity<T> extends Activity {
	public Button neuGe;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		neuGe = (Button) findViewById(R.id.ng);
		findViewById(R.id.Ge);
		findViewById(R.id.gebietsListe);
		neuGe.setOnClickListener(new View.OnClickListener(){
			
			public void onClick(View v){
				Intent Weiterleitung = new Intent("android.intent.action.NEUESGEBIET");
				startActivity(Weiterleitung);}
		});
		datasource = new GebieteDataSource(this);
	
		
		}
	public GebieteDataSource datasource;
	List<Entry> GebietsListe = new ArrayList<Entry>();
	
	public void neuesGebiet(View view){
		String name;
		int alter;
		EditText eintragen = (EditText)findViewById(R.id.NnGe);
		name = eintragen.getText().toString();
		EditText eintragenAlter = (EditText)findViewById(R.id.AnGe);
		alter = Integer.parseInt(eintragen.getText().toString());
		
		
		try{
			datasource.open();
			datasource.createEntry(name, alter);
			datasource.close();			
		}
			catch(Exception ex){
				Toast.makeText(this, ex.toString(), Toast.LENGTH_LONG).show();
			}
	}
		
		public void gebietsListe(){
			GebietsListe.clear();
		
			try{
				datasource.open();
				GebietsListe = datasource.getAllEntries();
				datasource.close();	}
			catch(Exception ex){
				Toast.makeText(this, ex.toString(), Toast.LENGTH_SHORT).show();
			}
			ArrayAdapter<Entry> adapterGebiete = new ArrayAdapter<Entry>(MainActivity.this, android.R.layout.simple_list_item_1, GebietsListe);
			
			ListView lGebiet = (ListView)findViewById(R.id.gebietsListe);
			lGebiet.setAdapter(adapterGebiete);
			
			
		}...
}

Code:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class NeuesGebiet extends Activity {
	public Button okke;

		public void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		setContentView(R.layout.neuesgebiet);
		okke = (Button) findViewById(R.id.ok);
		okke.setOnClickListener(new View.OnClickListener(){
			
			public void onClick(View v){
				MainActivity.neuesGebiet(v);
				Intent Weiterleitung = new Intent("android.intent.action.MAINACT");
				startActivity(Weiterleitung);}
		});
	}
	

}


Der ursprüngliche Beitrag von 22:59 Uhr wurde um 23:00 Uhr ergänzt:

Der Fehler liegt bei MainActivity.neuesGebiet
das ist klar.
Bloß wie kann man dieses Problem lösen???
 
Weiß keiner eine Antwort???
 
Naja, die Fehlermeldung sagt dir ja genau das was falsch ist.

1. Entweder du machst deine Methode "neuesGebiet" static oder
2. Du instanzierst dir die Klasse in der die Methode liegt um dann wie in deinem Code oben per "MainActivity.neuesGebiet()" auf die Methode zuzugreifen. (kann man zwar machen, aber ob das sinnvoll wäre? - keine Ahnung da noch nie gemacht).

PS. Das sind eigentlich auch Javagrundlagen, die man locker googeln kann.
 
Zuletzt bearbeitet:
Zurück
Oben Unten