通常当我们按名称传递数组时,它是按地址调用的.这意味着如果我们改变外部数组的任何值,main()
它将被反映出来main()
.
那么,如果我想将数组作为函数的参数传递并在其中调用,main()
以便该函数中的任何更改都不会反映在内部,我应该怎么做main()
?
例如:
void Foo(int arr[]) //takes an integer array `arr` as argument
{
// do something with `arr
}
int main()
{
int abc[]={5,1,2,9};
//do something to pass `abc` inside `Foo` so that changes inside `Foo` doesn't change the value of `abc` array.
}
Run Code Online (Sandbox Code Playgroud)
现在我想通过值传递abc
数组Foo
.
RecyclerView
我的里面有ViewPager
一个Fragment
。此RecyclerView
显示从服务器获取的数据。它通常可以工作,但我无法使用ViewModel
和实现相同的功能LiveData
,因为当从 更改时,该livedata.observe
方法不会被调用。livedata
ViewModel
这是我的MonthlyOrderViewModel.java类的源代码
public class MonthlyOrderViewModel extends AndroidViewModel {
private Retrofit retrofit;
private RetrofitServices retrofitServices;
private MutableLiveData<MonthlyOrderHistory> monthlyOrderHistoryMutableLiveData = new MutableLiveData<>();
public MonthlyOrderViewModel(@NonNull Application application) {
super(application);
retrofit = RetrofitFactory.getRetrofit();
retrofitServices = retrofit.create(RetrofitServices.class);
}
public MutableLiveData<MonthlyOrderHistory> getMonthlyOrderHistoryMutableLiveData() {
return monthlyOrderHistoryMutableLiveData;
}
public void fetchMonthlyOrders() {
Call<MonthlyOrderHistory> call = retrofitServices.getAllMonthlyOrderHistory(IpharmaApplication.getInstance().getLoggedInUser().getId());
call.enqueue(new Callback<MonthlyOrderHistory>() {
@Override
public void onResponse(Call<MonthlyOrderHistory> call, Response<MonthlyOrderHistory> response) {
MonthlyOrderHistory monthlyOrderHistory = response.body(); …
Run Code Online (Sandbox Code Playgroud) 请我尝试添加了解如何将 onItemClickListener 添加到以下代码中,以便单击“智能手机计划”时,其活动开始等。我在 StackOverflow 上看到了与此问题相关的其他问题,但不知道如何解决这些问题。我已经添加了一个 onItemClickListener 但不明白如何将它设置为特定的列表项。这是代码
package devchuks.com.rechargeit;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.app.ListActivity;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class EtisalatData extends AppCompatActivity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_etisalat_data);
listView = (ListView) findViewById(R.id.list);
String[] values = new String[] {
"Smartphone Plans",
"Internet Bundles",
"Weekend Plans",
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, values);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View …
Run Code Online (Sandbox Code Playgroud) 尽管我已按升序初始化数组,但我无法使此函数返回true.
bool won(int gameBoard[][SIZE])
{
for(int i=0;i<SIZE;i++)
{
for(int j=0;j<SIZE;j++)
{
if(gameBoard[i][j]>gameBoard[i][j+1]||gameBoard[i][j]>gameBoard[i+1][0])
{
return false;
}
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)