例如,我有A,B,C和主活動xml分別與A,B,C主 java。Android找不到視圖
我試圖把一個幀佈局在主 我還創建FM_A,FM_B和FM_C其是連接到A,B,C佈局XML
由於片段的java 主要是是一個導航欄的活動,我用主要片段替換了框架佈局,都是成功的。
,直到我試圖在佈局中使用的按鈕,一個錯誤說:
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
UPDATE:代碼添加
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
你可以分享你在'Button'上設置'OnClickListener'的代碼嗎? – SlashG
謝謝大家的回覆。我用onClick方法在XML文件中設置它,我現在張貼代碼 – Edwardhk