У меня есть функция Фрагмента, которую я использую, чтобы сделать панель вкладок. Внутри этого действия я планирую поставить таблицу или ListViews с некоторыми случайными значениями.Android Способы взаимодействия в Фрагменте
Вот мой код:
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();
}
});
}
}
Проблема заключается в том, что я не могу выразить свою Orders класс фрагментировать и активность, так что я получаю эту ошибку в моем коде:
Не удается разрешить метод findViewByID (ИНТ)
ListView listView1 = (ListView) findViewById(R.id.listView1);
не удается разрешить конструктор
ArrayAdapter<Order> adapter = new ArrayAdapter<Order>(this,
android.R.layout.simple_list_item_1, items);
не удается разрешить метод getBaseContext()
Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show();
Вероятно потому, что они что-то унаследовать от деятельности. Есть ли способ заставить их работать внутри Фрагмента? Извините за мой нообесс. Я новичок в разработке Android.
Чтобы открыть другой экран после нажатия на одном из пунктов ListView я сделал это право после публичного ничтожного метода onItemClick:
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);
Я попытался заменить как «getApplicationContext()» и «Заказы. это "с" getActivity() ", но это не сработало.
спасибо! Это сработало отлично! –
Можете ли вы помочь мне с еще одной вещью? После того, как я нажму на элемент из списка, я хочу открыть новый экран/действие и отправить «элемент» на этот экран. Я изменю исходное сообщение с моим кодом. –
Просто изменил исходный вопрос. Не могли бы вы мне помочь? –