2016-03-19 17 views
-1

Ich bin ziemlich neu zu programmieren, aber ich habe eine Listview, die den Inhalt einer Datenbank anzeigt. Es hat auch eine Taste, die gedrückt werden kann. der Code, der Probleme mit hat, ist in meiner Adapterklasse für die Listview. Idealerweise möchte ich Informationen über die Zeile, in der die Schaltfläche gedrückt wurde, an die neue Aktivität übergeben. soweit ich die startActivity herausnehme, kann ich den Text der Schaltfläche ändern, so dass ich weiß, dass die Schaltfläche funktioniert, aber sobald ich versuche, eine startActivity hinzuzufügen, stürzt sie einfach ab. Die Aktivität, die ich öffnen möchte, ist nur so, dass ich weiß, dass ich den Knopf zum Funktionieren bringen kann (daher nenne ich es Erfolg), um dies dann in eine andere App zu implementieren. Kann mir jemand helfen, warum die neue Aktivität sich nicht öffnet und wie man sie korrigiert, danke schonmal.Absicht innerhalb onclicklistener auf einem Listview-Adapter

@Override 
public View getView(int position,View convertView,ViewGroup parent) 
{ 

    View row = convertView; 
    final LayoutHandler layoutHandler; 
    if(row == null) 
    { 
     LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     row = layoutInflater.inflate(R.layout.row_layout,parent,false); 
     layoutHandler = new LayoutHandler(); 
     layoutHandler.NAME = (TextView)row.findViewById(R.id.tvViewRow); 
     layoutHandler.BtntoClick = (Button)row.findViewById(R.id.BtnToClick); 
     row.setTag(layoutHandler); 


    } 
    else 
    { 
     layoutHandler = (LayoutHandler) row.getTag(); 
    } 
    DataProvider dataProvider = (DataProvider)this.getItem(position); 
    layoutHandler.NAME.setText(dataProvider.getName()); 

// Dies ist die Methode, wenn Sie die Taste letzte Taste btn = layoutHandler.BtntoClick geklickt wurde;

btn.setOnClickListener(new View.OnClickListener(){ 


     @Override 
     public void onClick(View view) { 

      btn.setText("clicked"); 
      Log.e("intent builder", "onClick method started"); 
      Intent intent = new Intent(ListDataAdapter.this, Success.class); 
      startActivity(intent); 


     } 

     private void startActivity(Intent intent) { 

     } 


    }); 

    return row; 


} 
+0

was ist ein Stack-Trace? und es ist im Manifest – krisC

+0

http://stackoverflow.com/questions/3988788/what-is-a-stack-trace-and-how-cani--use-it-to-debug-my-application-errors –

Antwort

0

Das Problem vielleicht in Ihrer Absicht, aber ich bin nicht ganz sicher, ohne den Namen Ihrer Aktivitäten zu wissen

Intent intent = new Intent(ListDataAdapter.this, Success.class); 

Wenn ListDataAdapter Ihre aktuelle Aktivität ist, von dem Sie die Funktion aufrufen, dann ist es in Ordnung, wenn nicht dann muss es geändert werden.

i Auch bin nicht sicher, was dieser Code für ist

 private void startActivity(Intent intent) { 

    } 

Ein Stack-Trace wäre hilfreich

+0

Ehrlich gesagt bin ich nicht sicher, ob ListDataAdapter Klassen als Aktivität ist, weil es keine XML-Datei angehängt hat. Es wird von einer Aktivität namens DataListActivity aufgerufen, da es sich um den Adapter für die ListView handelt. Dieser Code ist da, denn als ich den Code zum ersten Mal eintippte, wurde die ganze Intention unterstrichen und als ich die Glühbirne drückte, fügte sie diesen Code ein, jetzt unterstreicht sie nur noch was in den Klammern steht "Konstruktor kann nicht aufgelöst werden". auch ich bin mir nicht sicher, was Sie mit einem Stack-Trace meinen? – krisC

+0

Soweit mir bekannt ist, wird die startActivity-Funktion nicht benötigt, und ListDataAdapter.this sollte der Name der Aktivität sein, von der aus Sie wechseln möchten. Also ich glaube, es sollte DataListActivity sein. – Tony

+0

Ich habe jetzt die startActivity-Funktion herausgenommen und in DataListActivity.this geändert und es unterstreicht jetzt die startActivity (intent) und sagt "startActivity() in ActivityCompat connot wird nicht angewendet" und ändert sich in DataListActivity.this sagt, dass "DataListActivity nicht ist eine umschließende Klasse " – krisC

Verwandte Themen