Например, у меня есть A, B, C и main Активность xml с A, B, C main java соответственно.Android Не удается найти просмотры
Я пытался поставить макет кадра в главной Я также создать FM_A, FM_B и FM_C которая представляет собой фрагмент Java связан с A, B, C макета XML
С main - активность навигационной панели, я заменяю фрейм в основном с фрагментом, все было успешно.
Пока я не пытался использовать кнопку в макете, ошибка говоря:
Could not find method saveSetting(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'btnSave'
С одной только деятельности без accesssing их с фрагментом, он может быть нормально функционировал, что мой способ сделать так ошибка?
Ссылка ссылка: https://www.youtube.com/watch?v=ju837bQOBfg&spfreload=5
ОБНОВЛЕНИЕ: Код добавлен
Setting.java
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setting);
startLinking();
startSharedPreferences();
// Check for second entry
if (sharedPreferences.getString("Name", "") != null)
{
displayInfo();
btnEdit.setVisibility(View.VISIBLE);
btnSave.setVisibility(View.INVISIBLE);
btnClear.setVisibility(View.INVISIBLE);
btnGoWelcome.setVisibility(View.VISIBLE);
etxtName.setEnabled(false);
etxtFood.setEnabled(false);
spinnerBreed.setEnabled(false);
}
}
public void startLinking()
{
etxtName = (EditText) findViewById(R.id.etxtName);
etxtFood = (EditText) findViewById(R.id.etxtFood);
btnSave = (Button) findViewById(R.id.btnSave);
btnClear = (Button) findViewById(R.id.btnClear);
btnEdit = (Button) findViewById(R.id.btnEdit);
btnGoWelcome = (Button) findViewById(R.id.btnGoWelcome);
spinnerBreed = (Spinner) findViewById(R.id.spinnerBreed);
adapter = ArrayAdapter.createFromResource(this, R.array.breedNameArr, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerBreed.setAdapter(adapter);
}
public void startSharedPreferences()
{
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
editor = sharedPreferences.edit();
}
public void saveSetting(View view)
{
String petName, breed, food, userID;
if (TextUtils.isEmpty(etxtName.getText().toString()) == true || spinnerBreed.getCount() == 0 || TextUtils.isEmpty(etxtFood.getText().toString()) == true)
{
Toast.makeText(this, "Please fill all the info!", Toast.LENGTH_SHORT).show();
return;
} else
{
editor = sharedPreferences.edit();
editor.putString("Name", etxtName.getText().toString());
editor.putString("Food", etxtFood.getText().toString());
editor.putInt("BreedPos", spinnerBreed.getSelectedItemPosition());
editor.putString("Breed", spinnerBreed.getSelectedItem().toString());
editor.commit();
Toast.makeText(this, "SAVE SUCCESS!", Toast.LENGTH_SHORT).show();
btnEdit.setVisibility(View.VISIBLE);
btnSave.setVisibility(View.INVISIBLE);
btnClear.setVisibility(View.INVISIBLE);
btnGoWelcome.setVisibility(View.VISIBLE);
etxtName.setEnabled(false);
etxtFood.setEnabled(false);
spinnerBreed.setEnabled(false);
}
}
FM_Setting.java (фрагмент)
public class FM_Setting extends Fragment
{
View myview;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
{
myview=inflater.inflate(R.layout.activity_setting, container, false);
return myview;
}
}
activity_setting.xml
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save"
android:id="@+id/btnSave"
android:onClick="saveSetting"
android:background="@android:color/transparent"
android:textColor="@color/colorTitleBar"
android:layout_below="@+id/etxtFood"
android:layout_centerHorizontal="true"/>
Пожалуйста, добавьте ваш код. Эта информация не достаточна, чтобы ответить на ваш вопрос. – Svel04
Можете ли вы поделиться кодом, в котором вы устанавливаете 'OnClickListener' на' Button'? – SlashG
Спасибо, ребята, за ваш ответ. Я установил его в файле XML с помощью метода onClick, теперь я отправляю код – Edwardhk