Я уже давно пытаюсь найти решение своей проблемы, но безрезультатно. У меня есть класс customView
, который я добавляю статически в layout
моего MainActivity
(я добавляю его в файл XML). У меня есть второй Activity
, которому нужен доступ к методам моего customView
, так как он будет извлекать из него данные и изменять некоторые данные. Однако моему второму activity
нужно получить доступ только к тому же объекту пользовательского представления, которое уже было добавлено в MainActivity
.
Я хочу, чтобы это выглядело примерно так:
В своем MainActivity.java
я бы сделал так:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btnID);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent btnIntent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(btnIntent);
}
});
}
А в моем SecondActivity
это будет примерно так:
public class SecondActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
CustomView viewer = (CustomView) findViewById(R.id.custom); //I want to link to the view I added in the MainActivity
viewer.getData(); // Example of what methods I want to use here
viewer.setData(); // It should directly set/get the data from the object in the MainActivity
До сих пор я пробовал это:
public static CustomView viewer = (CustomView) findViewById(R.id.custom);
В MainActivity
, чтобы затем использовать viewer
в SecondActivity
, но это не сработало, потому что findViewById
не является статическим.
Я также попытался добавить это:
CustomView viewer = (CustomView) ((Activity)context).findViewById(R.id.custom);
В SecondActivity
, но тогда я получаю сообщение об ошибке, что я вызываю findViewById
для нулевой ссылки.
Я не совсем уверен, что я могу сделать, я много искал в Интернете и в SO, но до сих пор не могу решить проблему.
Я все еще новичок в андроиде, поэтому буду признателен, если кому-то удастся мне помочь.
Спасибо!