Autore Topic: Aggiungere una view alla layout da codice java  (Letto 616 volte)

Offline rokity

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8
Aggiungere una view alla layout da codice java
« il: 28 Gennaio 2014, 22:26:04 CET »
0
Ciao
Sono nuovo , stavo lavorando ad un progetto quando mi incaglio in questo problema. Devo inserire un nuova view in una layout senza usare xml ma in un metodo java e purtroppo riscontro il problema quando eseguo questo riga di codice
Codice (Java): [Seleziona]
layout.addView(tv,params).... Ho provato diverse volte cercando il vero nocciolo del problema e la riga di codice che fa scaturire l'errore è proprio questa scritta qui sopra....Quindi se potreste darmi un mano vi ringrazio in anticipo :)
Ecco il codice java dell'intera classe
Codice (Java): [Seleziona]
public class second extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.labelseconda);
        EditText edit=(EditText)findViewById(R.id.nexus);
        InputMethodManager imm;
        imm = (InputMethodManager)
                getSystemService(INPUT_METHOD_SERVICE);
        imm.showSoftInput(edit, InputMethodManager.SHOW_IMPLICIT);    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu2, menu);
        return true;    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        EditText edit=(EditText)findViewById(R.id.nexus);
        String name=item.getTitle().toString();
        if (name.equals("Save")) {
            String valor;
            valor = edit.getText().toString();
           RelativeLayout journals;
           journals = (RelativeLayout) findViewById(R.layout.fragment_main);
           TextView tv = new TextView(this);
            tv.setId(111111);
            tv.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
           tv.setText(valor);
            RelativeLayout.LayoutParams params =new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            Button button=(Button)findViewById(R.id.button);
            params.addRule(RelativeLayout.ABOVE, button.getId());
            tv.setLayoutParams(params);
            // THIS THE PROBLEM
            journals.addView(tv, params);
            return true;        }
        else        {
            edit.setText("non è uguale a save");
            return true;                }    }}

E questa il codice xml della layout in cui vorrei aggiungere la mia textview:
Codice (XML): [Seleziona]
<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:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"
   tools:context=".MainActivity$PlaceholderFragment">


    <Button

       android:layout_width="fill_parent"
       android:layout_height="wrap_content"

       android:text="@string/text_button"
       android:id="@+id/button"
       android:onClick="method"
       android:paddingRight="0dp"
       android:layout_alignParentBottom="true"
       android:layout_alignParentLeft="true" />



</RelativeLayout>

Offline ciccio

  • Utente junior
  • **
  • Post: 65
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Francesco Cervone
  • Sistema operativo:
    Mac OS X 10.9
Re:Aggiungere una view alla layout da codice java
« Risposta #1 il: 29 Gennaio 2014, 00:40:38 CET »
0
Credo che il problema sia il seguente: tu hai associato a questa activity il layout 'labelseconda'. Quando nel metodo onOptionsItemSelected chiami findViewById(R.layout.fragment_main) è come se stessi cercando fragment_main nel layout labelseconda. Quindi, dato che non c'è, quella funzione ti ritorna null.
L'errore a questo punto dovrebbe essere un NullPointerException e si verifica quando chiami il metodo addView su di esso.
Se posti il log magari posso essere più preciso e potrei capire se mi sbaglio.

Inviato dal mio Nexus 7 utilizzando Tapatalk


Offline rokity

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8
Re:Aggiungere una view alla layout da codice java
« Risposta #2 il: 29 Gennaio 2014, 08:05:16 CET »
0
Scusami ma i miei strumenti non sono dei migliori ma usando come emulatore direttamente il telefono mi è difficile trovare i log e distinguerli dai log di sistema, se per caso potresti linkarmi un tutorial per distinguere i log della mia app dalle altre ti ringrazio

Post unito: 29 Gennaio 2014, 08:55:54 CET
Comunque da quanto ho capito lui mi dice
  getTextBeforeCursor on inactive InputConnection
« Ultima modifica: 29 Gennaio 2014, 08:55:54 CET da rokity, Reason: Merged DoublePost »

Offline ciccio

  • Utente junior
  • **
  • Post: 65
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Francesco Cervone
  • Sistema operativo:
    Mac OS X 10.9
Re:Aggiungere una view alla layout da codice java
« Risposta #3 il: 29 Gennaio 2014, 09:21:58 CET »
0
No, intendevo il log visualizzato in android studio o eclipse (a seconda di quello che usi). Lo stacktrace dell'errore. Quando viene generata l'eccezione nell'IDE ci deve essere una area di testo dove viene visualizzato lo stacktrace.

Inviato dal mio Nexus 7 utilizzando Tapatalk

Offline rokity

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 8
Re:Aggiungere una view alla layout da codice java
« Risposta #4 il: 29 Gennaio 2014, 09:39:58 CET »
0
Capito... Appena posso lo posto , grazie :)