Ich habe eine Fragment-Aktivität, die ich verwende, um eine Tab-Leiste zu erstellen. Innerhalb dieser Aktivität plane ich, eine Tabelle oder ListViews mit einigen zufälligen Werten zu setzen.Android-Aktivitätsmethoden in Fragment
Hier ist mein Code:
import com.example.mvaguimaraes.beetrackprov.R;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView;
public class Orders extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.orders, container, false);
ListView listView1 = (ListView) findViewById(R.id.listView1);
Order[] items = {
new Order(1, "Milk", 21.50),
new Order(2, "Butter", 15.99),
new Order(3, "Yogurt", 14.90),
new Order(4, "Toothpaste", 7.99),
new Order(5, "Ice Cream", 10.00),
};
ArrayAdapter<Order> adapter = new ArrayAdapter<Order>(this,
android.R.layout.simple_list_item_1, items);
listView1.setAdapter(adapter);
listView1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String item = ((TextView) view).getText().toString();
Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show();
}
});
}
}
Das Problem ist, dass ich nicht meine Bestellungen Klasse ich diese Fehler fragmentieren und Aktivität erweitern können so in meinem Code bekommen:
Methode findViewById kann nicht aufgelöst werden (int)
ListView listView1 = (ListView) findViewById(R.id.listView1);
nicht Konstruktor lösen
ArrayAdapter<Order> adapter = new ArrayAdapter<Order>(this,
android.R.layout.simple_list_item_1, items);
Die Methode kann nicht getBaseContext()
Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show();
Wahrscheinlich, weil sie erben etwas von Aktivität lösen. Gibt es eine Möglichkeit, sie innerhalb des Fragments arbeiten zu lassen? Sorry für mein Noob-Ness Ich bin neu in Android Development.
auf einem anderen Bildschirm zu öffnen, nachdem ich dieses Recht nach der onItemClick public void Methode habe auf eines der Elemente der Listenansicht klicken:
String item = ((TextView) view).getText().toString();
Intent i = new Intent(getApplicationContext(), OrderDetails.class);
i.putExtra("new_variable_name",item);
Intent browserIntent =
new Intent(Orders.this, OrderDetails.class);
startActivity(browserIntent);
startActivity(i);
Ich habe versucht, beide „getApplicationContext()“ zu ersetzen und „Orders
. dies "mit" getActivity() "aber es hat nicht funktioniert.
Vielen Dank! Es hat perfekt funktioniert! –
Kannst du mir noch eine Sache helfen? Nachdem ich auf einen Eintrag in der Listview geklickt habe, möchte ich einen neuen Bildschirm/eine neue Aktivität öffnen und den "Gegenstand" an diesen Bildschirm senden. Ich ändere den ursprünglichen Beitrag mit meinem Code. –
Nur die ursprüngliche Frage geändert. Würde es dir etwas ausmachen, mir zu helfen? –