#android #android-intent
#Android #android-намерение
Вопрос:
У меня есть один класс Java и один класс Activity.
В моем классе Java он состоит из бизнес-логики. Я хочу получить доступ к текстовым представлениям из класса activity в мой класс Java.
Если я создам объект для класса activity. Я получил все представления в классе activity как NULL и получил исключение нулевого указателя.
Это мой класс Java, здесь я создал объект для класса activity, и здесь я получаю NULLpointerException
для tdoor.setText()
метода.
public class Subscribe {
viewtiles vtiles=new viewtiles();
public void sendMessageforstatus(String status)
{
if(status.contains("Door is open"))
{
vtiles.tdoor.setText("OPEN");
}
else if(status.equalsIgnoreCase("Door is close"))
{
vtiles.tdoor.setText("CLOSE");
}
Это мой класс макета activity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tilesview);
tdoor = (TextView) findViewById(R.id.door2);
}
XML
<RelativeLayout xmlns:android="schemas.android.com/apk/res/android";
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/background_light" >
<TextView android:layout_width="79dp"
android:layout_height="wrap_content"
android:text="Door"
android:layout_marginTop="10dp"
android:layout_marginLeft="52dp"
android:id="@ id/door1"
android:textColor="@android:color/black"
android:textSize="20dp" />
</RelativeLayout>
Можете ли вы, пожалуйста, помочь мне с этой проблемой…
Комментарии:
1. опубликуйте свой XML-код
2. <RelativeLayout xmlns:android=» schemas.android.com/apk/res/android » android:layout_width=»match_parent» android:layout_height=»match_parent» android:background=»@android:color / background_light» >:layout_marginTop=»10dp» android:layout_marginLeft=»52dp» android: id =»@ id / door1″ android: textColor =»@android: color / black» android:textSize =»20dp» />
3. Когда вы создаете свою
viewtiles
activity bynew viewtiles()
, вы создаете совершенно новую activity вместо доступа к уже существующей activity, к которой, я полагаю, вы хотите получить доступ. Кроме того, это плохой дизайн для доступа к activity (классу контроллера в смысле MVC) из класса бизнес-логики. Вам следует лучше получить доступ к классу бизнес-логики из activity.4. тогда как я могу получить доступ к существующей активности? @gus42
5. Вы можете получить доступ к существующему activity, передав ссылку в качестве параметра вашему
Subscribe
классу, напримерpublic Subscribe(viewtiles vtiles)
. Но смотрите Мой комментарий раньше: это плохой дизайн.
Ответ №1:
Вы можете передать объект TextView в свой класс Java,
public void sendMessageforstatus(String status, TextView txt)
{
// example
txt.setText("OPEN");
}
Комментарии:
1. я вызываю метод sendMessageforstatus() из другого действия, поэтому я не могу передать объект TectView