Frage bezüglich Action Bar

D

Duzz

Neues Mitglied
0
Ich schreibe für ein Projekt in der Schule eine Android App (btw bin ein Java n00b^^). Mit dieser App verbinde ich mich mit einem MySQL Server und zeige die Dateien in meiner App an. Wenn man auf den submit Button drückt, schickt die App eine Anfrage an den Server und dieser schickt die Daten die ich will.
Doch nun will ich, dass ich den Button in der Action Bar habe. Verstehe zwar wie man Buttons in die ActionBar bekommt, aber ich habe noch nicht verstanden wie man diese auch benutzt.

In einem Tutorial habe ich diesen Codeschnipsel gefunden. Doch dieser hilft mir nicht wirklich weiter.
Code:
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.item1:
         Toast.makeText(this, "Menu item 1 selected", Toast.LENGTH_SHORT) .show();
      break;
    case R.id.item2:
      Toast.makeText(this, "Menu item 2 selected", Toast.LENGTH_SHORT)
          .show();
      break;

    default:
      break;
    }

    return true;
  }
Meine Activity. Es gibt noch eine zweite, die für Http Verbindung zuständig ist.
Code:
package com.example.notiz;


import java.util.ArrayList;

import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.annotation.TargetApi;
import android.app.Activity;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;



@TargetApi(9)
public class JSONUseActivity extends Activity {


@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
    


 Button submit;    //button
 TextView tv;      //display results
 String returnString;   // store results


 


    /** Called when the activity is first created. */


    @Override


    public void onCreate(Bundle savedInstanceState) {
        
    
     StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()


  .detectDiskReads().detectDiskWrites().detectNetwork() 


  .penaltyLog().build());


        super.onCreate(savedInstanceState);


        setContentView(R.layout.main);


        


       
        submit = (Button) findViewById(R.id.submitbutton);

        tv = (TextView) findViewById(R.id.showresult);


                
        submit.setOnClickListener(new View.OnClickListener(){        


         public void onClick(View v) {
             
          ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
          String response = null;


          


          // call executeHttpPost method passing necessary parameters          
          try {


     response = CustomHttpClient.executeHttpPost("http://IP/projekt/jsonscript.php" , postParameters);
      String result = response.toString();  


              


      //parse json data
         try{


                 returnString = "";


           JSONArray jArray = new JSONArray(result);


                 for(int i=0;i<jArray.length();i++){


                         JSONObject json_data = jArray.getJSONObject(i);


                         Log.i("log_tag","ID: "+json_data.getInt("ID")+


                                 ", notiz: "+json_data.getString("notiz")+


                                 ", id_personen: "+json_data.getString("id_personen")


                                 


                         );


                         //Get an output to the screen


                         returnString += "\n" + json_data.getString("ID") + " : "+ json_data.getString("notiz") + ", vom User mit der ID: " +json_data.getString("id_personen");


                 }


         }


         catch(JSONException e){


                 Log.e("log_tag", "Error parsing data "+e.toString());


         }


     


         try{


          tv.setText(returnString);
             
             


         }


         catch(Exception e){


          Log.e("log_tag","Error in Display!" + e.toString());;          


         }   


    }


          catch (Exception e) {


     Log.e("log_tag","Error in http connection!!" + e.toString());     


    }


         }         


        });


    }


}
 
Was hilft dir denn am Codeschnipsel genau nicht weiter?

Du musst die Methode in deiner Activity implementieren, switch-Anweisung an deine Menu-Item-IDs anpassen (also deine vergebenen IDs, statt den hier verwendeten "R.id.itemx") und den gewünschten Programmcode/die Logik hinter die Buttons in der switch-Anweisung legen.
 
reneph schrieb:
Was hilft dir denn am Codeschnipsel genau nicht weiter?

Du musst die Methode in deiner Activity implementieren, switch-Anweisung an deine Menu-Item-IDs anpassen (also deine vergebenen IDs, statt den hier verwendeten "R.id.itemx") und den gewünschten Programmcode/die Logik hinter die Buttons in der switch-Anweisung legen.
Das Problem ist ich versteh nicht ganz wie ich den Programmcode in die switch-Anweiseng legen soll? Denn mein Code wird ja aufgerufen, wenn ich auf submit klicke
Code:
submit.setOnClickListener(new View.OnClickListener(){
Wie kann ich das mit dem Action Bar button machen? Wie kann ich den button deklarieren?
Code:
bar1 = (ActionBar) findViewById(R.id.item1);
funktioniert nämlich nicht^^
 
Wie gesagt, einfach die onOptionsItemSelected-Methode implementieren, die darin enthaltene Switch-Anweisung anpassen etc.....:

PHP:
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.submitbutton: // je nachdem, welche ID dein MenuItem denn hat
         ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
          String response = null;
          
          bla
          bla
          bla
      break;

    default:
      break;
    }

    return true;
  }
 

Ähnliche Themen

A
  • AnimaAngelo85
Antworten
1
Aufrufe
313
swa00
swa00
M
Antworten
2
Aufrufe
612
Mozart40
M
A
Antworten
1
Aufrufe
570
swa00
swa00
Zurück
Oben Unten